This shows you the differences between two versions of the page.
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> |