#pragma once template class Stack { public: Stack(); ~Stack(); void push(Type value); Type pop(); private: int size; Type *data; int top; }; template Stack::Stack() : top(-1), size(10) { data = new Type[size]; } template Stack::~Stack() { delete data; } template void Stack::push(Type value) { if (top Type Stack::pop() { return data[top--]; }