J'ai un vecteur de pointeurs sur des objets souris appelés 'souris'. Je passe les souris au chat par référence.Problème avec le passage de vecteur de pointeurs vers des objets à la fonction membre d'un autre objet
vector <Mouse*> mice;
Cat * c;
c->lookForMouse(&mice);
Et voici mon lookForMouse() fonction membre
void Cat::lookForMouse(vector <Mouse*> *mice)
{
...
}
Et maintenant au problème! Dans la fonction ci-dessus, je n'arrive pas à accéder à mes souris. Ce ci-dessous ne fonctionnera pas
mice[i]->isActive();
Le message d'erreur que je reçois suggère d'utiliser des souris [i] .isActive(), mais renvoie une erreur en disant isActive() n'est pas membre de std :: vecteur < _Ty> ...
Cela fonctionne bien ...
vector <Mouse*> miceCopy = *mice;
miceCopy[i]->isActive();
Je comprends que je ne devrais pas être en train de créer un autre vecteur de souris ici, il va à l'encontre du point entier de passer par référence (laissez-moi savoir si Je me trompe) ...
Pourquoi je ne peux pas faire des souris [i] -> isActive() Que dois-je faire?
Merci pour votre temps et votre aide: D
James.
Comme on peut le voir à partir de réponses multiples, le titre de cette question n'a rien à voir avec le vecteur de pointeurs, mais plutôt avec la gestion des références de pointeur. –
Oops ... Si je pouvais remonter le temps, Si je pouvais trouver un moyen, je reprends ces mots que vous faire du mal, Et vous restiez, Si je pouvais atteindre les étoiles, je D vous les donner tous, Alors vous m'aimez, aimez-moi, Comme vous le faisiez auparavant ... –