Destructeur de liste chainee
Bonjour pour la 4 eme fois de la journee...
J ai une ptite question , tt d abord voici le code :
liste.h
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 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() ;
}; |
mes destructeurs:
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
|
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;
} |
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 ?
merci