#include //%%%%%%%%%%%%%%%%%%%%%%% Classe PILA const int DIM_MAX = 10; template class PILA {private: T *A; int TOP; int dim; void ALLARGA(); public: PILA() {A = new T[DIM_MAX]; dim = DIM_MAX; TOP = 0; } void PUSH(T x); T POP(); int EMPTY(); }; template void PILA::PUSH(T x) {if (TOP == DIM_MAX) ALLARGA(); A[TOP] = x; ++TOP; } template T PILA::POP() {--TOP; return A[TOP]; } template int PILA::EMPTY() {if (TOP == 0) return 1; else return 0; } template void PILA::ALLARGA() {T* AUX = new T[dim + DIM_MAX]; for(int i=0; i < dim; ++i) AUX[i] = A[i]; delete[] A; dim = dim + DIM_MAX; } //%%%%%%%%%%%%%%%%%%%%%%% main di prova int main() { PILA P1; PILA P2; P2.PUSH('a'); P2.PUSH('b'); cout << P2.POP() << endl; return 0; }