La plupart des lignes sont assorties d’explications complémentaires présentées
conventionnellement sous forme de commentaires et qui précisent les instructions
concernées.
début main
constructeur I : 1 0 /* demo a ; */
constructeur I : 2 0 /* demo b = 2 ; */
constructeur II (recopie) : 1 0 /* demo c = a ; */
constructeur I : 3 3 /* new demo (3, 3) */
constructeur II (recopie) : 1 0 /* recopie de la valeur de a dans fct(a, ...) */
/* ce qui crée un objet temporaire */
entrée fct
destruction : 3 3 /* delete add ; (dans fct) */
sortie fct
destruction : 1 0 /* destruction objet temporaire créé pour */
/* l'appel de fct */
constructeur I : 4 4 /* demo d = demo(4, 4) */
constructeur I : 5 5 /* c = demo(5, 5) (contruction objet temporaire) */
destruction : 5 5 /* destruction objet temporaire précédent */
fin main
destruction : 4 4 /* destruction d */
destruction : 5 5 /* destruction c */
destruction : 2 0 /* destruction b */
destruction : 1 0 /* destruction a */
Notez bien que l’affectation c = demo (5,5) entraîne la création d’un objet temporaire par
appel du constructeur de demo (arguments 5 et 5) ; cet objet est ensuite affecté à a. On
constate d’ailleurs que cet objet est effectivement détruit aussitôt après. Mais il existe
certaines implémentations qui ne respectent pas la norme et où cela peut se produire
plus tard.
Par ailleurs, l’appel de fct a entraîné la construction d’un objet temporaire, par appel
du constructeur par recopie. Cet objet est ici libéré dès la sortie de la fonction. Là
encore, dans certaines implémentations, cela peut se produire plus tard.
171
conventionnellement sous forme de commentaires et qui précisent les instructions
concernées.
début main
constructeur I : 1 0 /* demo a ; */
constructeur I : 2 0 /* demo b = 2 ; */
constructeur II (recopie) : 1 0 /* demo c = a ; */
constructeur I : 3 3 /* new demo (3, 3) */
constructeur II (recopie) : 1 0 /* recopie de la valeur de a dans fct(a, ...) */
/* ce qui crée un objet temporaire */
entrée fct
destruction : 3 3 /* delete add ; (dans fct) */
sortie fct
destruction : 1 0 /* destruction objet temporaire créé pour */
/* l'appel de fct */
constructeur I : 4 4 /* demo d = demo(4, 4) */
constructeur I : 5 5 /* c = demo(5, 5) (contruction objet temporaire) */
destruction : 5 5 /* destruction objet temporaire précédent */
fin main
destruction : 4 4 /* destruction d */
destruction : 5 5 /* destruction c */
destruction : 2 0 /* destruction b */
destruction : 1 0 /* destruction a */
Notez bien que l’affectation c = demo (5,5) entraîne la création d’un objet temporaire par
appel du constructeur de demo (arguments 5 et 5) ; cet objet est ensuite affecté à a. On
constate d’ailleurs que cet objet est effectivement détruit aussitôt après. Mais il existe
certaines implémentations qui ne respectent pas la norme et où cela peut se produire
plus tard.
Par ailleurs, l’appel de fct a entraîné la construction d’un objet temporaire, par appel
du constructeur par recopie. Cet objet est ici libéré dès la sortie de la fonction. Là
encore, dans certaines implémentations, cela peut se produire plus tard.
171
