Partie III – Destructeurs en C++

TD1

Nous souhaitons que lorsque nous détruisons un compteur celui-ci signale sa destruction en affichant un message sur la console ainsi que sa valeur au moment de la destruction.

Question n° 1

Définissez un destructeur en C++ qui effectue cette opération. Tester le code.

Correction

Correction

Nous ajoutons un destructeur qui affiche à la fois le statut interne du compteur mais aussi l'adresse de celui, addresse qui est fourni par le pointeur this qui retourne l'adresse de la mémoire qui a été allouée lors de la création de l'objet.

Ce pointeur this pointe soit sur la mémoire se situant sur le tas, mais aussi sur la mémoire allouée sur la pile ou dans la mémoire globale.

struct MyCounter
{
    ...
    ~MyCounter()
    {
        std::cout << "Delete counter: " << this 
          << " ( " << count << ", " << max << ")" 
          << std::endl;
    }
    ...
};

Lorsque vous exécutez votre programme, chaque fois qu'un compteur est détruit, soit par sortie de la portée ou par appel de l'opérateur delete, le message définit dans le destructeur ~MyCounter s'affiche et vous indique quel compteur a été détruit et aussi dans quel ordre les objets ont été détruits.