2011-09-23 2 views
1
std::vector<Ogre::SceneNode*>::iterator itr; 
for(itr=mSelectedObjects.begin();itr!=mSelectedObjects.end();itr++){ 
    itr->showBoundingBox(true); //here 
} 

Je reçois l'expression "doit avoir un type pointeur vers classe" sur la ligne marquée, et je ne sais pas pourquoi. Quelqu'un peut-il aider?Très basique std :: vector itération

Répondre

7

Remplacer la ligne erronée avec:

(*itr)->showBoundingBox(true); //here 

Depuis que vous stockez des pointeurs, vous devez déréférencer itr deux fois pour obtenir de l'itérateur à l'objet (une fois pour le iterator et une fois pour le pointeur).

+0

Merci! Quelle était la cause? (je suppose que c'était un vecteur de pointeurs?) – pighead10

+0

@PigHead: Voir la mise à jour de la réponse. J'espère que c'est assez clair. – NPE