JavascriptProva

martedì 15 maggio 2012

Il distruttore

Il distruttore viene chiamato quando l'oggetto cessa di esistere.
Quando cessa di esistere un oggetto?

Non so rispondere.

Ecco: sono arrivato a una conclusione.
Un oggetto per il quale venga allocata la memoria in modo... statico (?) si distrugge solo alla fine del programma.
Credo...
Ecco: ho creato una classe con un distruttore, nel quale vi sono le istruzioni di stampare qualcosa a video e poi attendere nuovamente la pressione di un tasto.
Il distruttore entra in azione alla fine del programma, quando l'oggetto cessa di esistere.
#include<stdio.h>
class Rettangolo{
 int base, altezza;
public: 
 Rettangolo();
 ~Rettangolo();
 int area();
};


Rettangolo::Rettangolo(){
 base=3;
 altezza=5;
}
Rettangolo::~Rettangolo(){
 printf("distruggo");
 getc(stdin);
}
int Rettangolo::area(){
 return(base*altezza);
}
void main(){
 Rettangolo BaseRettangolo;
 
 printf("%u\n",BaseRettangolo.area());
 
 getc(stdin);
}
E adesso mi ripercorro gli eventi sulla finestra:
15



La finestra è in attesa dell'input (istruzione getc(stdin)).
Ora schiaccio Invio ed ecco cosa accade:
15

distruggo


Viene eseguito, nel momento in cui la procedura main() è cessata, il programma termina e l'oggetto cessa di esistere, il codice del distruttore, con stampa a video della stringa "distruggo" e nuova attesa di un input (nuova istruzione getc(stdin)).
Schiacciando di nuovo Invio, la finestra sparisce e il programma è terminato.

Nessun commento:

Posta un commento