Sto studiando i distruttori e costruttori e ho il seguente programma relativo a una semplice applicazione agli stack:
L'esecuzione del programma dovrebbe darmi:Codice PHP:
#include <iostream>
using namespace std;
#define SIZE 100
// Creazione della classe stack.
class stack {
int stck[SIZE];
int tos;
public:
stack(); // costruttore
~stack(); // distruttore
void push(int i);
int pop();
};
// costruttore dello stack
stack::stack()
{
tos = 0;
cout << "Stack inizializzato\n";
}
// distruttore dello stack
stack::~stack()
{
cout << "Stack distrutto\n";
}
void stack::push(int i)
{
if(tos==SIZE) {
cout << "Stack esaurito.\n";
return;
}
stck[tos] = i;
tos++;
}
int stack::pop()
{
if(tos==0) {
cout << "Stack vuoto.\n";
return 0;
}
tos--;
return stck[tos];
}
int main()
{
stack a, b; // crea due oggetti della classe stack
a.push(1);
b.push(2);
a.push(3);
b.push(4);
cout << a.pop() << " ";
cout << a.pop() << " ";
cout << b.pop() << " ";
cout << b.pop() << "\n";
system("PAUSE");
return 0;
}
Stack inizializzato
Stack inizializzato
3 1 4 2
Stack distrutto
Stack distrutto
Invece mi da:
Stack inizializzato
Stack inizializzato
3 1 4 2
Che cosa ho sbagliato???secondo voi???