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

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

  1. Contributeur
    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
    1. >>(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
    2. Contributeur
      @DrCrowouai, pas con.
      C'est pas facile de raisonner juste avec un petit bout de code.
      0
  2. Sinon, poste ton code si c'est pas long ^^
    0