Untitled
template <typename T> class Stack { public: Stack() : m_pData(0), m_capacity(0) { } ~Stack() { if (m_pData) delete m_pData; } void Initialise(size_t capacity) { m_pData = new T[capacity]; m_capacity = capacity; Size = 0; } void Push(const T &value) { if (Size < m_capacity) m_pData[Size++] = value; } T Pop() { return m_pData[--Size]; } bool IsEmpty() { return (Size == 0); } size_t Size; private: T *m_pData; size_t m_capacity; };