User Tools

Site Tools


in204:tds:sujets:td1:part3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
in204:tds:sujets:td1:part3 [2019/09/19 11:57]
77.194.42.247
in204:tds:sujets:td1:part3 [2022/11/18 10:50] (current)
Line 9: Line 9:
 Définissez un destructeur en C++ qui effectue cette opération. Tester le code. Définissez un destructeur en C++ qui effectue cette opération. Tester le code.
  
 +<hidden 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.
 +
 +<code cpp>
 +
 +struct MyCounter
 +{
 +    ...
 +    ~MyCounter()
 +    {
 +        std::cout << "​Delete counter: " << this 
 +          << " ( " << count << ", " << max << "​)" ​
 +          << std::endl;
 +    }
 +    ...
 +};  ​
 +
 +</​code>​
 +
 +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.
 +
 +
 +</​hidden>​
in204/tds/sujets/td1/part3.1568894226.txt.gz · Last modified: 2019/09/19 11:57 by 77.194.42.247