Voici ma question:Iterator pour le vecteur de pointeurs ne déréférencement correctement
J'ai un std::vector<AguiWidgetBase*>
qui est utilisé pour garder une trace des contrôles enfants.
J'ai ces deux fonctions pour retourner itérateurs:
std::vector<AguiWidgetBase*>::const_iterator AguiWidgetBase::getChildBeginIterator() const
{
return children.begin();
}
std::vector<AguiWidgetBase*>::const_iterator AguiWidgetBase::getChildEndIterator() const
{
return children.end();
}
Je l'utilise alors comme ceci:
for(std::vector<AguiWidgetBase*>::const_iterator it = box->getChildBeginIterator();
it != box->getChildEndIterator(); ++it)
{
it->setText("Hello World");
}
et je reçois ces erreurs:
Error 3 error C2039: 'setText' : is not a member of 'std::_Vector_const_iterator<_Ty,_Alloc>' c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\main.cpp 112
Error 2 error C2839: invalid return type 'AguiWidgetBase *const *' for overloaded 'operator ->' c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\main.cpp 112
Pourquoi est-il me donner ces erreurs?
Merci
Si Agui fonctionne comme la plupart des autres frameworks GUI, alors ces widgets s'autodétruisent. Ce serait alors une très mauvaise idée d'utiliser 'shared_ptr'. Mais cela dépend de l'Agui, quel qu'il soit. –
Vous avez raison, ils sont auto-destructeurs – jmasterx