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

Next revision
Previous revision
in204:tds:sujets:td1:part3 [2019/09/19 11:55]
77.194.42.247 created
in204:tds:sujets:td1:part3 [2022/11/18 10:50] (current)
Line 1: Line 1:
- 
 ====== Partie III – Destructeurs en C++ ====== ====== Partie III – Destructeurs en C++ ======
 +
 +[[in204:​tds:​sujets:​td1|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. 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.
Line 7: Line 8:
  
 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.1568894145.txt.gz · Last modified: 2019/09/19 11:55 by 77.194.42.247