Table of Contents

Chapitre :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:

  1. Allocation de la mémoire nécessaire à la fois à l'objet de base et à son extension.
  2. Initialisation de l'objet de base.
  3. Initialisation de l'extension.

Quand nous effectuons la destruction, nous effectuons le processus inverse.

  1. Destruction de l'extension.
  2. Destruction des objets de base.
  3. Suppression de la mémoire nécessaire à la fois à l'objet de base et à son extension.

Notions associées

Les destructeurs virtuels

Section précédente: Les constructeurs