#ifndef __STACK_H
#define __STACK_H

#ifndef __ARRAY_H
#include <array.h>
#endif

// @C
// Classe TStack : private TArray
// @END

class TStack : private TArray
{
  // @DPRIV
  int _sp;      // Puntatore alla cima dello stack

public:
  // @FPUB 
  TStack(int size); // Chiama il costruttore di TArray(size)

  int count() const { return _sp; }     // Ritorna il puntatore allo stack
  void push(const TObject&);    // Aggiunge un oggetto sullo stack
  TObject& pop();       // Ritorna il primo oggetto sulla cima dello stack
};

#endif
