Contenu du cours
C++ Oop
C++ Oop
Qu'est-ce Qu'un Destructeur de la Classe
Syntaxe du Destructeur
Bien qu'ils aient des objectifs opposés, créer un destructeur est très similaire à créer un constructeur. Ils partagent presque les mêmes principes de déclaration. L'approche générale pour en créer un est :
- Nom : Il a le même nom que la classe, mais est précédé d'un tilde (~).
- Pas de type de retour : Il n'a pas de type de retour, même pas void.
- Pas de paramètres : Il ne peut pas prendre de paramètres.
- Invocation automatique : Il est appelé automatiquement par le compilateur lorsque l'objet sort de portée ou est explicitement supprimé.
Invocation automatique des destructeurs
L'invocation automatique des destructeurs fait référence à l'appel automatique du destructeur. Cela garantit que les ressources détenues par l'objet sont correctement libérées, aidant ainsi à prévenir les fuites de mémoire et de ressources.
scope
delete
termination
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
- Quand un objet sort de portée.
- Lorsque l'opérateur delete est utilisé pour supprimer des objets alloués dynamiquement.
- Lorsque le programme se termine.
Le Besoin de Destructeurs
Le but principal d'un destructeur est de libérer les ressources acquises par l'objet pendant sa durée de vie. Cela inclut la fermeture des descripteurs de fichiers, la désallocation de la mémoire (en utilisant new) ou des tâches similaires.
ResourceHolder
FileHandler
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };
1. Quel est le but principal d'un destructeur ?
2. Quelle est la syntaxe pour déclarer un destructeur ?
Merci pour vos commentaires !