Ciao raga,
ho appena iniziato a programmare in C++!!!
Sto implementando le mie prime classi e da quanto ho capito alla fine della funzione in cui è creato l'oggetto è distrutto dall'apposito distruttore (ovvio!!!).
Implementando questo codice :
codice:
#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";
return 0;
}
Vedo che l'output è quello che voglio tranne per il fatto che il distruttore nn comunica nessun messaggio, come da me messo per controllare l'avvenuta chiamata.
Forse il linker di DevC++ fa pena? bho!
Mi postate il vostro output, grazie!