Bonjour tout le monde,
j'optimise actuellement un projet que j'ai a faire, et donc je vérifie le nombre d'appels de destructeur effectué (grace à des variables globales: je sais que ce n'est pas bien mais c'est juste pour le test) pendant le programme, il s'agit d'une liste doublement chainée avec un mSuivant et mPrecedent (vers des classes type umh.
Donc je vous présente mon destructeur:
Un parcours d'une liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 umh::~umh(void){ delete mSuivant; delete mPrecedent; CD++; }
et enfin ma fonction qui affiche le nombre d'appel de constructeurs et destructeurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void Materiau::Affiche(void){ cout<<"Affichage"<<endl; umh *test; Parametre Param; test=new umh; test=*mTete; while(test){ test->AfficheAdresse(); test=test->Suivant(); } delete test; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void umh::Verification(void){ cout<<"Nombre d'appels de constructeur: "<<CC<<endl; cout<<"Nombre d'appels de destructeur: "<<CD<<endl; }
Bon rien de compliqué me direz vous, cependant à la sortie "de Affiche" la variable CD vaut toujours 0...Comment se fait se?
Une autre question: mon destructeur vous parrait t-il correct?
MMerci pour vos réponses!
Partager