Bonjour pour la 4 eme fois de la journee...
J ai une ptite question , tt d abord voici le code :
liste.h
mes destructeurs:
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
34 // Classe maillon template <class T> class maillon { // Champs prives private: T data ; maillon<T> *suivant ; // Forme canonique de Coplien public: maillon(); maillon(const maillon<T>&) ; maillon(const T); ~maillon() ; // Autres methodes et operateurs maillon<T>* gonext(); }; // Classe liste template <class T> class liste { // Champs prives private: maillon<T>* tete; maillon<T>* fin ; // Forme canonique de Coplien public: liste() ; liste(const liste<T>&) ; ~liste() ; };
J aimerai savoir si mes pointeurs tete et fin d une liste sont supprimes , je sais que je supprime les objets POINTÉS mais est ce que je supprime les pointeurs eux memes ?
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 template <class T> liste<T> :: ~liste() { if ((tete != NULL) && ((*tete).gonext() != NULL)) { maillon<T>* parcours; maillon<T>* apresparcours; apresparcours = (*tete).gonext(); parcours = tete; do { delete parcours; parcours = apresparcours; apresparcours = (*apresparcours).gonext(); } while ((*apresparcours).gonext() != NULL ); delete parcours; if (apresparcours != NULL) delete apresparcours; } // delete tete; // delete fin; } template <class T> maillon<T> :: ~maillon () { delete this; }
merci
Partager