Salut !

J'ai un problème pour effacer un objet par récurrence, sur un exemple simplifié, ce serait :
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
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.