Chapitre :[[cpp:syntax:class:deriving|L'héritage & les classes dérivées]] ====== Les desctructeurs dans les classes dérivées ====== ===== La syntaxe du destructeur ===== La syntaxe est celle d'un destructeur classique. class Object { ~Object() {} }; class ExtendedObject() { ~ExtendedObject() {} }; Si aucun destructeur n'est fourni, le compilateur crée un destructeur par défaut qui ne fait rien sauf à appeller ensuite les destructeurs de chacun des champs défini dans l'objet ainsi que le destructeurs des classes dont il hérite. ===== La destruction de l'objet ===== Une classe dérivée est une extension d'un objet. Elle étend un objet de base avec de nouvelles méthodes et de nouveaux champs. Le processus de construction de l'objet est le suivant: - Allocation de la mémoire nécessaire à la fois à l'objet de base et à son extension. - Initialisation de l'objet de base. - Initialisation de l'extension. Quand nous effectuons la destruction, nous effectuons le processus inverse. - Destruction de l'extension. - Destruction des objets de base. - Suppression de la mémoire nécessaire à la fois à l'objet de base et à son extension. ==== Notions associées ==== [[cpp:syntax:class:deriving:virtual_destructor|Les destructeurs virtuels]] Section précédente: [[cpp:syntax:class:deriving:methods|Les constructeurs]]\\