C++ / Méthode d'un objet dans un vector.

Fermé
Huruu Messages postés 1 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 9 février 2010 - 9 févr. 2010 à 15:12
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 9 févr. 2010 à 15:52
Bonjour à vous,

J'aurais deux petites questions à vous poser qui me pose problème.

* Comment faire pour utiliser les méthodes d'un objet contenu dans un vector d'objet ?</puce>
* Comment créer une référence sur un objet contenu dans un vecteur d'objets ?</puce>



J'ai essayé d'accéder aux méthodes de mon objet de la façon suivante :


std::vector<maClasse> monVecteur;

// Remplissage du vecteur ...

monVecteur[5].maMethode();


En faisant de la sorte, j'ai l'erreur suivante :

'class std::vector<maClasse, std::allocator<maClasse> >' has no member named 'maMethode'


J'ai ensuite essayé de faire une référence sur un objet de mon vector, pour utiliser ses fonctions.


// Avec un vecteur de type vector<maClasse> ...

maClasse& maReference = monVecteur[5];

maReference.maMethode();



Et je me retrouve avec l'erreur suivante :

'invalid initialization of reference of type 'maClasse&' from expression of type 'std::vector<maClasse, std::allocator<maClasse> >


Voila mon problème, si quelques uns parmi vous peuvent m'aider, je vous en serai reconnaissant !

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
9 févr. 2010 à 15:22
Salut.
C'est quoi ton compilateur (nom et version), car pour moi tout est bon.
Protège un peu avec des parenthèses :
(monVecteur[5]).maMethode();

Sinon, donne nous un code mini qui pose problème que l'on puisse tester chez nous.
0
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 19
9 févr. 2010 à 15:27
>>(monVecteur[5]).maMethode();
Pas la peine ^^'; je crois que c'est un problème d'inclusion,
n'as tu pas oublié le (MyClass::) en déclrent t fonction,
void MyClass::MaMethode() {/*...*/}
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298 > DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014
9 févr. 2010 à 15:52
ouai, pas con.
C'est pas facile de raisonner juste avec un petit bout de code.
0
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 19
9 févr. 2010 à 15:28
Sinon, poste ton code si c'est pas long ^^
0