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
123456int 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
123456789101112class 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!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Mi faccia domande su questo argomento
Riassuma questo capitolo
Mostri esempi dal mondo reale
Awesome!
Completion rate improved to 3.13
Che cos'è un distruttore della classe
Scorri per mostrare il menu
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
123456int 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
123456789101112class 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!