Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Qu'est-ce Qu'un Destructeur de Classe | Constructeurs et Destructeurs
Programmation Orientée Objet en C++
course content

Contenu du cours

Programmation Orientée Objet en C++

Programmation Orientée Objet en C++

1. Fondamentaux de la POO en C++
2. Constructeurs et Destructeurs
3. Aperçu de l'Encapsulation
4. Aperçu de l'Héritage
5. Aperçu du Polymorphisme

book
Qu'est-ce Qu'un Destructeur de Classe

Note
Définition

Les destructeurs sont des fonctions membres spéciales qui sont invoquées lorsque la durée de vie d’un object's prend fin. Leur objectif principal est de libérer les ressources que l’objet a pu acquérir au cours de sa durée de vie.

Syntaxe du destructeur

Même s’ils remplissent des fonctions opposées, la création d’un destructeur est très similaire à celle d’un constructeur. Ils partagent presque les mêmes principes de déclaration. L’approche générale pour en créer un est la suivante :

  • Nom : il porte le même nom que la classe, mais est précédé d’un tilde (~) ;
  • Aucun type de retour : il ne possède pas de type de retour, même pas void ;
  • Aucun paramètre : il ne peut pas prendre de paramètres ;
  • Invocation automatique : il est appelé automatiquement par le compilateur lorsque l’objet sort de la 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, ce qui aide à prévenir les fuites de mémoire et de ressources.

scope.cpp

scope.cpp

delete.cpp

delete.cpp

termination.cpp

termination.cpp

copy
123456
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
  • lorsqu'un objet sort de la portée ;
  • lorsque l'opérateur delete est utilisé pour supprimer des objets alloués dynamiquement ;
  • lorsque le programme se termine.

Nécessité des destructeurs

L'objectif principal d'un destructeur est de libérer les ressources acquises par l'objet durant sa durée de vie. Cela inclut la fermeture des descripteurs de fichiers, la désallocation de la mémoire (avec new) ou des tâches similaires.

ResourceHolder.cpp

ResourceHolder.cpp

FileHandler.cpp

FileHandler.cpp

copy
123456789101112
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 ?

question mark

Quel est le but principal d’un destructeur ?

Select the correct answer

question mark

Quelle est la syntaxe pour déclarer un destructeur ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Programmation Orientée Objet en C++

Programmation Orientée Objet en C++

1. Fondamentaux de la POO en C++
2. Constructeurs et Destructeurs
3. Aperçu de l'Encapsulation
4. Aperçu de l'Héritage
5. Aperçu du Polymorphisme

book
Qu'est-ce Qu'un Destructeur de Classe

Note
Définition

Les destructeurs sont des fonctions membres spéciales qui sont invoquées lorsque la durée de vie d’un object's prend fin. Leur objectif principal est de libérer les ressources que l’objet a pu acquérir au cours de sa durée de vie.

Syntaxe du destructeur

Même s’ils remplissent des fonctions opposées, la création d’un destructeur est très similaire à celle d’un constructeur. Ils partagent presque les mêmes principes de déclaration. L’approche générale pour en créer un est la suivante :

  • Nom : il porte le même nom que la classe, mais est précédé d’un tilde (~) ;
  • Aucun type de retour : il ne possède pas de type de retour, même pas void ;
  • Aucun paramètre : il ne peut pas prendre de paramètres ;
  • Invocation automatique : il est appelé automatiquement par le compilateur lorsque l’objet sort de la 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, ce qui aide à prévenir les fuites de mémoire et de ressources.

scope.cpp

scope.cpp

delete.cpp

delete.cpp

termination.cpp

termination.cpp

copy
123456
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
  • lorsqu'un objet sort de la portée ;
  • lorsque l'opérateur delete est utilisé pour supprimer des objets alloués dynamiquement ;
  • lorsque le programme se termine.

Nécessité des destructeurs

L'objectif principal d'un destructeur est de libérer les ressources acquises par l'objet durant sa durée de vie. Cela inclut la fermeture des descripteurs de fichiers, la désallocation de la mémoire (avec new) ou des tâches similaires.

ResourceHolder.cpp

ResourceHolder.cpp

FileHandler.cpp

FileHandler.cpp

copy
123456789101112
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 ?

question mark

Quel est le but principal d’un destructeur ?

Select the correct answer

question mark

Quelle est la syntaxe pour déclarer un destructeur ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
some-alt