[destructeur] Detruire correctement une map
Bonjour à tous,
Bien qu'ayant lu la FAQ là dessus, je ne trouve pas tout à fait mon bonheur...
voici ma classe Choc:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Choc {
public:
Choc (int num_choc); // Constructeur général
Choc (Choc & choc);
~Choc();
void setNumeroChoc (int);
void ajouterCFP(CFP * cfp);
void ajouterCFP(std::string nom_composant);
void ajouterCFPBiVisee(std::string nom_composant);
private:
int m_numero_choc;
std::map<std::string, CFP *> m_tableau_cfp;
std::vector<std::string> m_cameras_disponibles; |
Lorsque dans mon programme principal je lance
Ca plante sur mon destructeur : invalid parameters ! 8O
Code:
1 2 3 4 5 6 7 8
| Choc::~Choc()
{
std::map<std::string, CFP*>::iterator iter;
for (iter = m_tableau_cfp.begin(); iter != m_tableau_cfp.end(); iter++)
{
m_tableau_cfp.erase(iter->first); // ICI
}
} |
Ma destruction n'est pas propre? :(
Merci de votre aide ! ;)
EDIT: je me demande même si je supprime mes pointeurs vers CFP ? :koi: