Salut !
J'ai un problème pour effacer un objet par récurrence, sur un exemple simplifié, ce serait :
Pensez-vous que cela pourrait marcher ou je dois définir une fonction récurrente "effacer" que j'appelle dans le destructeur ?
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 } };
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.
Partager