j'ai une classe qui contient des pointeurs d'objets regroupés dans des vecteurs,
j'ai une methode "clear()" qui doit supprimer ses pointeurs, je fais comme ca :
void CBloc_w::clear(void)
{
for(std::vector<CBloc_w*>::iterator it = m_bloc.begin(); it != m_bloc.end();)
it = m_bloc.erase(it);
for(std::vector<CEntree_w*>::iterator it = m_entree.begin(); it != m_entree.end();)
it = m_entree.erase(it);
for(std::vector<CBouton_w*>::iterator it = m_bouton.begin(); it != m_bouton.end();)
it = m_bouton.erase(it);
for(std::vector<CTexte_w*>::iterator it = m_texte.begin(); it != m_texte.end();)
it = m_texte.erase(it);
}
j'aimerais savoir si c'est la bonne facon de faire
Alors je te le dis tout de suit comme ça, ça ne marchera pas.
Si tes pointeurs ne sont pas crés via des "new", tu peux utiliser la méthode "clear" de la classe std::vector.
std::vector<*blabla> monVector;//On cree un vector de pointeurs
//Le vector vit plein d'aventures palpitantes
monVector.clear(); //On vide le vector
Si tu obtients tes pointeurs via des "new" c'est autre chose, mais je pense pas que c'est ce que tu voulais faire puisque tu n'uilises pas de delete dans ton code.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.