#ifndef __STACK_H #define __STACK_H #ifndef __ARRAY_H #include "array.h" #endif // @doc EXTERNAL // @class TStack | Classe per la gestione dello stack a basso livello // // @base public | TObject class TStack : public TObject // @author:(INTERNAL) Alex // @access:(INTERNAL) Private Member { protected: // @cmember:(INTERNAL) Dati dello stack TArray _data; // @cmember:(INTERNAL) Puntatore alla cima dello stack int _sp; // @access Public Member public: // @cmember Ritorna il puntatore allo stack int count() const { return _sp; } // @cmember Aggiunge un oggetto sullo stack void push(const TObject& o); // @cmember Aggiunge un oggetto sullo stack void push(TObject* o); // @cmember Ritorna il primo oggetto sulla cima dello stack TObject& pop(); // @cmember Ritorna l'oggetto ad una data profondita' nello stack TObject& peek(int depth = 0) const; // @cmember Distrugge l'intero stack void destroy(); // @cmember Distrugge l'oggetto alla base dello stack bool destroy_base(); // @cmember Costruttore. Chiama il costruttore di TStack(int size = 16); // @cmember Costruttore. Chiama il costruttore di TStack(const TStack& stack); // @cmember Distruttore. Chiama il distruttore di virtual ~TStack() { } }; #endif