Problème constructeur destructeur
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:
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;} |
Question subsidiaire ... Merci d'avance
Lorsque le constructeur a té appelé 3 fois quel est l'évènement qui fait intervenir le destructeur ?
++ 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?)
Merci ..........