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