Je travaille sur un jeu très basique et j'ai une collection d'objets std :: list qui se rapportent à mon jeu. Je déclarai comme:Pointeur pour l'item en itération sur std :: list
std::list<Target> targets;
Quand j'itérer sur, en utilisant
for (std::list<Target>::iterator iter = targets.begin(); iter != targets.end(); iter++) {
Target t = *iter;
t.move();
}
Mes objets ne sont pas sur l'interface graphique actualisent. Cependant, en remplaçant la boucle itérée par un targets.front().move()
, mon objet se déplace correctement. Je pense que c'est parce que je ne suis pas itérer sur la collection en utilisant des pointeurs. Quelqu'un peut-il expliquer comment cela est fait? Merci.
Ou utilisez 'Cible & t = * iter;'. – xtofl
Que fait exactement -> faire? Je cherche des pointeurs, et je vois les explications pour & et *, mais pas ->. Merci. – tipu
Ou utilisez 'iter-> move();' –