argument de type objet d'une fonction
Bonjour,
Je me suis mis à la programmation en C++ récemment pour le plaisir. J'ai donc commencé par suivre un tutoriel C++ , et le cours C/C++ de Christian Casteyde sur ce site en complément.
J'ai appris à écrire une classe, à la mettre dans un autre fichier que le main.ccp, et j'en suis à coder un mini-RPG très simple via la console. Voici mon problème :
j'ai une classe nommée Personnage, et dedans une fonction Tour, appelée par le main lorsque l'initiative du personnage atteint une valeur seuil. La voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| void Personnage::tour()
{
do
{
cout << "Tour de " << m_nomPersonnage << " : que voulez-vous faire ? /n [potion] [attaquer] [rien]" << endl;
cin >> m_action;
if (m_action=="potion")
{
boirePotionDeVie(20);
}
else if (m_action=="attaquer")
{
m_cibleattaque=????
attaquer(m_cibleAttaque);
}
else if (m_action=="rien")
{
nefaisrien();
}
}while (estActif()==1);
cout << endl;
} |
ou nefaisrien() et boirepotiondevie(20) sont des fonctions qui marchent.
Seulement la fonction attaquer(Personnage) ci-dessous prend en argument un objet de type personnage, et je n'arrive pas à l'intégrer dans ma fonction tour. L'idée est de demander à l'utilisateur le personnage à attaquer, mais je ne vois pas comment faire. J'ai essayé de déclarer un objet de type personnage en attribut, et d'utiliser un pointeur mais rien ne marche. Une idée?
Code:
1 2 3 4 5 6 7
| void Personnage::attaquer(Personnage &cible)
{
cout << m_nomPersonnage << " attaque " << cible.getName() << "." << endl;
cible.recevoirDegats(m_arme.getDegats());
cout << endl;
m_estActif=false;
} |
Merci d'avance,
bl4cksky