#ifndef EXAMPLE19_STACK_H #define EXAMPLE19_STACK_H template class Stack { private: int top; T* impl; public: Stack(int n=5) : top(-1), impl(new T[n]) { } ~Stack() { delete[] impl; } bool empty() const { return top == -1; } void push(T el) { impl[++top] = el; } T pop() { return impl[top--]; } }; #endif //EXAMPLE19_STACK_H