Examen 2018 Quesetion 3 S

Examen 2018 Quesetion 3 S

par Iris Meditz,
Number of replies: 2

Bonjour,

Je suis en train de réviser les examens passés et pour la question 3 S de l'examen de 2018 et j'ai deux solutions possibles dont je ne sais pas laquelle est correcte. Il est clair pour moi que comme il s'agit de la fin du programme, les vraiables c et a (de type Y et X respectivement) seront détruites. La destruction de c correspond à ~Y() ~X() et la destruction de a correpond à  ~X(), mais je ne sais pas dans quel ordre les variables seront détruites. Comment je fais pour savoir cela ?

In reply to Iris Meditz

Re: Examen 2018 Quesetion 3 S

par Fares Ahmed,
Pour le savoir, retenez simplement que la destruction de variables locales se fait dans l'ordre inverse d'appel des constructeurs (notez que c'est la même chose que pour la construction d'instances de classes).

Dans ce cas-ci, la variable c est construite avant la variable a. Ainsi, l'instance a est la première à être détruite, suivie par c, ce qui donne comme ordre d'appel final: ~X() ~Y() ~X().