Pascal/Costruttori e distruttori: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 11:
<source lang=pascal>
USES crt;
TYPE HelloWorld= Object
PRIVATE
Line 31 ⟶ 32:
VAR CiaoMondo:HelloWorld;
BEGIN
CiaoMondo.Init(30,5)
CiaoMondo.Stampa;
readln;
Line 40 ⟶ 41:
I costruttori in un oggetto non sono ovviamente obbligatori, ma se ne raccomanda l'uso.
==I distruttori==
Analogamente ai construttori, i distruttori fanno quel che necessita non appena l'oggetto viene distrutto, anche se, la funzione principale di un distruttore è quella di liberare la memoria e renderla disponibile ad altre parti del programma. La parola chiave del Pascal che denota un distruttore è <code>DESTRUCTOR</code>
Come esempio possiamo ancora considerare il precedente, definendo un distruttore che oltre a liberare le risorse e a cancellare l'istanza dell'oggetto, cancella la frase che era stata scritta nello schermo.
<source lang=pascal>
USES crt;
TYPE HelloWorld= Object
PRIVATE
riga,colonna:byte;
PUBLIC
Constructor Init(rig,col:byte);
Procedure Stampa;
Destructor Done;
End;
Constructor HelloWorld.Init;
BEGIN
riga:=rig;
colonna:=col;
END;
Procedure HelloWorld.Stampa
BEGIN
gotoxy(riga,colonna);
write('Hello, world!');
END;
Destructor HelloWorld.Done;
BEGIN
gotoxy(riga,colonna);
write(' ');
END;
VAR CiaoMondo:HelloWorld;
BEGIN
CiaoMondo.Init(30,5);
CiaoMondo.Stampa;
ReadLn; {Attende che premiamo INVIO}
CiaoMondo.Done; {Distruzione, lo schermo è tutto nero}
ReadLn;
END.
</source>
[[Categoria:Pascal]]
|