class Pila_char { const static int deftam = 100; char *v; int tope; int tamactual; public: Pila_char(): tope(0), tamactual(deftam) {v = new char[tamactual];} void push(char); char pop(); ~Pila_char(){delete v;} class Vacia{}; };
#include "pila4.h" void Pila_char::push(char c) { if (tope == tamactual) { int tamnuevo = tamactual + deftam; char *vinter = new char [tamnuevo]; for(int i =0; i<tamactual ; i++) vinter[i]=v[i]; delete v; v = vinter; } v[tope++] = c; } char Pila_char::pop() { if (tope == 0) throw Vacia(); return v[--tope]; }
#include "pila3.h" #include<iostream> void main() { Pila_char p; for(int i=1;i<300;i++) p.push('c'); p.push('d'); cout << p.pop()<<'\n'; cout << p.pop()<<'\n'; }
g++ usopila4.C pila4.C -o usopila4