Hello,
Soit une classe Pouet, et la liste STL suivante, accompagnée de son itérateur :
La mémoire pour les Pouet de la liste a été allouée avec des new.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 list<Pouet*> dudule; list<Pouet*>::iterator iter;
Quelle est la meilleure méthode pour désallouer la mémoire ?
Pour l'instant, j'utilise une boucle qui fait :
Mais d'une part, le transtypage étant à la C, j'aimeras le transformer en static_cast ou en dynamic_cast. Mais lequel utiliser ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (iter = pouetList.begin(); iter != pouet.end(); ++iter) { Pouet* dudule = (Pouet*)*iter; delete dudule ; }
D'ailleurs, un transtypage est-il nécessaire ?
Sinon, ne devrais-je tout simplement pas utiliser des auto_ptr pour mes Pouet ?
J'ai découvert ça il n'y a pas très longtemps, et je ne sais pas toujours dans quels cas il faut l'utiliser.
Merci.
Partager