Transtypage sur itérateur
Hello,
Soit une classe Pouet, et la liste STL suivante, accompagnée de son itérateur :
Code:
1 2
| list<Pouet*> dudule;
list<Pouet*>::iterator iter; |
La mémoire pour les Pouet de la liste a été allouée avec des new.
Quelle est la meilleure méthode pour désallouer la mémoire ?
Pour l'instant, j'utilise une boucle qui fait :
Code:
1 2 3 4 5
| for (iter = pouetList.begin(); iter != pouet.end(); ++iter)
{
Pouet* dudule = (Pouet*)*iter;
delete dudule ;
} |
Mais d'une part, le transtypage étant à la C, j'aimeras le transformer en static_cast ou en dynamic_cast. Mais lequel utiliser ?
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.