CS35 Stack Wrapper for STL Stack

stlStack.h
#pragma once

/* Copyright (c) 2017
   Swarthmore College Computer Science Department, Swarthmore PA
   A. Danner, M. Gagne, J. Brody, Z. Palmer, A. Soni
   Distributed as course material for Fall 2017
   CPSC 035: Data Structures and Algorithms
 */

#include <stack>
#include <stdexcept>

#include <cs35/stack.h>

using std::runtime_error;
using std::stack;

template <typename T>
class STLStack : public Stack<T> {
public:
    void push(T item);
    T pop();
    int getSize();
    bool isEmpty();
    T getTop();
private:
    stack<T> actualStack;
};

template <typename T>
void STLStack<T>::push(T item) {
    actualStack.push(item);
}

template <typename T>
T STLStack<T>::pop() {
    if (actualStack.empty()) {
        throw runtime_error("pop: empty stack");
    }
    T value = actualStack.top();
    actualStack.pop();
    return value;
}

template <typename T>
int STLStack<T>::getSize() {
    return actualStack.size();
}

template <typename T>
bool STLStack<T>::isEmpty() {
    return actualStack.empty();
}

template <typename T>
T STLStack<T>::getTop() {
    if (actualStack.empty()) {
        throw runtime_error("getTop: empty stack");
    }
    return actualStack.top();
}