Destruction par récurrence
Salut !
J'ai un problème pour effacer un objet par récurrence, sur un exemple simplifié, ce serait :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class C
{
C* next;
C() //Mon constructeur
{
next = 0;
}
~C() //Mon destructeur défini par récurrence
{
if (next != 0)
{
next->~C();
} //A cette étape, next ne contient qu'un pointeur nul
delete(next); //Pour libérer la mémoire lorsque next ne contient plus qu'un pointeur nul
next = 0; //Pour que la récurrence continue
}
}; |
Pensez-vous que cela pourrait marcher ou je dois définir une fonction récurrente "effacer" que j'appelle dans le destructeur ?
Un autre problème est que je ne peux utiliser que "new" et non "malloc" pour créer un élément "next" car j'utilise delete.
PS : je sais qu'il y a des choses très bien définies dans la STL mais j'ai besoin de savoir résoudre cet exemple "simple" pour ma structure.