je dispose d'une structure de données :
Comment peut-on supprimer une telle structure ?Code:
1
2
3
4
5 typedef struct SNode{ vector<string> elem; struct SNode *next; }StackNode;
Existe-t-il un destructeur pour les structures?
Version imprimable
je dispose d'une structure de données :
Comment peut-on supprimer une telle structure ?Code:
1
2
3
4
5 typedef struct SNode{ vector<string> elem; struct SNode *next; }StackNode;
Existe-t-il un destructeur pour les structures?
Comme n'importe quelle autre variable. Quel est le problème ?
Note que le typedef est inutile en C++.
le probleme c'est que on ne peut supprimer le vector<string> avec un delete
Les structures se comportent comme les classes. La seule différence est que leurs mmebres sont "public" par défaut ("private" pour les classes)Citation:
Envoyé par mathher
on peut donc définir nous-meme un destructeur pour une structure comme ceci??
Code:
1
2
3
4
5
6
7
8
9
10 struct SNode{ vector<string> elem; struct SNode *next; }StackNode; ~SNode(){ //Code du dest. }
Code:
1
2
3
4
5
6
7
8
9
10
11 struct SNode{ vector<string> elem; struct SNode *next; ~SNode(); } StackNode; SNode::~SNode(){ //Code du test... }
Et plus proprement :
struct StackNode{
//le code
~StackNode();
};
normal, on ne delete que ce qu'on a newsé.Citation:
Envoyé par mathher
( :mouarf: faut que je prenne des vacances moi )
tu ne désalloues que ce que tu as toi-même alloué. si tu n'as pas fait de new et que tu n'utilises pas de pointeur, tu n'as pas de raison d'utiliser de delete.