Erreur C3867 en C++
Mon code fonctionnait bien jusqu'à ce que j'ai rechargé le programme, quelques heures plus tard. Maintenant, je reçois cette erreur:
erreur C3867: 'joueur::getxPos': appel d'une fonction manquante de la liste d'arguments; utiliser "&joueur::getxPos " pour créer un pointeur sur membre
erreur C3867: 'joueur::getyPos': appel d'une fonction manquante de la liste d'arguments; utiliser "&joueur::getyPos " pour créer un pointeur sur membre
Voici le code en question:
if (P->shoot())
{
shotVector.push_back(shot());
eS = shotVector.size();
shotVector[eS-1].initShot(
P->getxPos, //C3867
P->getyPos //C3867
);
}
Je suis en train d'appeler deux fonctions d'une classe appelée joueur et ces deux fonctions ressembler à ceci:
int player::getxPos(){
return xPos;
};
int player::getyPos(){
return yPos;
};
Ce qui est fait est que je suis en train de poser pour les joueurs de position et ensuite l'utiliser pour décider de l'endroit où tirer.
OriginalL'auteur Xturbed1442 | 2010-10-20
Vous devez vous connecter pour publier un commentaire.
shotVector[eS-1].initShot(P->getxPos, P->getyPos);
- vous essayez d'appeler legetxPos()
etgetyPos()
membres sans()
.Utilisation
getxPos()
etgetyPos()
.OriginalL'auteur wkl
Vous avez oublié la parenthèse, qui indiquent au compilateur que vous souhaitez un appel de méthode:
vs
Si à la place vous utilisé
&P->getxPos
, qui vous donnent un pointeur vers la fonction de membre lui-même.OriginalL'auteur Adam Batkin
OriginalL'auteur Alex F