Bonjour
Le programme ci dessous me renvoie le résultat suivant
++ construction : il y a maintenant = 1 objets (je rajoute a priori a)
++ construction : il y a maintenant = 2 objets ( a priori a;u)
++ construction : il y a maintenant = 3 objets ( a priori a;u;v)
-- destruction : il reste maintenant 2 objets (je demande qui est détruit?)
-- destruction : il reste maintenant 1 objets (je demande qui est détruit?)
++ construction : il y a maintenant = 2 objets ( b est rajouté)
Je comprends le constructeur mais pas le destructeur
d'où mes questions
1 - A quel moment le destructeur est-il sollicité ?
2 - Pourquoi les 3 objets créés ne sont-ils pas détruits ?
3 - pourquoi le destructeur n'est-il pas sollicité à la fin du programme pour dire
qu'il supprime les objets restants ?
Je vous remercie par avance de la célérité et de la précision avec laquelle vous me répondrez
Voici le programme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <iostream> #include <stdlib.h> using namespace std; class cpte_obj { static int ctr; public : cpte_obj (); ~cpte_obj(); }; int cpte_obj ::ctr =0; cpte_obj :: cpte_obj () { cout<< "++construction : il y a maintenant = " << ++ctr << " objets\n"; } cpte_obj :: ~cpte_obj () { cout<< "-- destruction : il reste maintenant " << --ctr << " objets\n"; } main () { void fct (); cpte_obj a; fct(); cpte_obj b; system("PAUSE"); } void fct () { cpte_obj u,v;}
Partager