Contenuti del Corso
OOP in C++
OOP in C++
Che cos'è un distruttore della classe
I distruttori sono funzioni membro speciali che vengono invocate quando termina la vita di un object's
. Il loro scopo principale è rilasciare le risorse che l'oggetto potrebbe aver acquisito durante la sua esistenza.
Sintassi del distruttore
Anche se hanno scopi opposti, creare un distruttore è molto simile a creare un costruttore. Condividono quasi gli stessi principi di dichiarazione. L'approccio generale per crearne uno è:
Nome: ha lo stesso nome della classe, ma è preceduto da una tilde (
~
);Nessun tipo di ritorno: non ha un tipo di ritorno, nemmeno void;
Nessun parametro: non può accettare parametri;
Invocazione automatica: viene chiamato automaticamente dal compilatore quando l'oggetto esce dallo scope o viene eliminato esplicitamente.
Invocazione automatica dei distruttori
L'invocazione automatica dei distruttori si riferisce alla chiamata automatica del distruttore. Questo garantisce che le risorse detenute dall'oggetto vengano rilasciate correttamente, contribuendo così a prevenire perdite di memoria e di risorse.
scope.cpp
delete.cpp
termination.cpp
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
quando un oggetto esce dall'ambito;
quando l'operatore
delete
viene utilizzato per eliminare oggetti allocati dinamicamente;quando il programma termina.
Necessità dei Distruttori
Lo scopo principale di un distruttore è rilasciare le risorse acquisite dall'oggetto durante il suo ciclo di vita. Questo include la chiusura di handle di file, la deallocazione della memoria (utilizzando new
) o compiti simili.
ResourceHolder.cpp
FileHandler.cpp
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };
1. Qual è lo scopo principale di un distruttore?
2. Qual è la sintassi per dichiarare un distruttore?
Grazie per i tuoi commenti!