logo

Erreur pour une fonction

C'est ici que vous posterez vos questions sur la programmation en C ou en C++

Erreur pour une fonction

Messagede Miceli » 12 Mar 2010, 22:48

Bonsoir

Je rencontre des erreurs pour un projet et malgré mes recherches sur internet je n'ai trouvé aucune solution, voilà le code de la fonction où je rencontre mes erreurs :

Code: Tout sélectionner
void Armure::equiperArmure()
{
    cout<<"Ce personnage vient de s'equiper de cette armure"<<endl;
    Personnage::vie=(this->pvProtection)+(Personnage::vie);
    cout<<"Vie: "<<Personnage->vie<<endl;
}


Cette fonction a pour but de prendre la vie d'un personnage et d'y ajouter les points de protections (pvProtection).
Cela me retourne les erreurs suivantes :

Erreur 1 error C2597: référence non conforme à un membre non static 'Personnage::vie'

Erreur 2 error C3867: &'Personnage::vie' : liste d'arguments manquante dans l'appel de fonction ; utilisez 'Personnage::vie' pour créer un pointeur vers membre

D'autres informations qui pourront peut être vous être utiles :

armure est une class fille de la class Objet.
Personnage est une class fille de la class Element.

Dans le Armure.h j'ai mit #include"Personnage.h"

Merci de votre aide.
Miceli
 

Re: Erreur pour une fonction

Messagede Tibo » 13 Mar 2010, 15:12

C'est normal : il faut que tu dises quel est le personnage qui vient de faire l'acquisition de cette belle armure...
Quand tu écris Personnage::vie, c'est comme si tu disais à l'ordinateur "prend la vie de tous les personnages", alors que toi tu voulais dire "prend la vie de tel personnage"...
Donc il faudrait mettre plutôt :
Code: Tout sélectionner
Personnage p;
cout<<"Ce personnage vient de s'equiper de cette armure"<<endl;
p.vie=(this->pvProtection)+(p.vie);

Mais c'est pas encore parfait, car écrire ça, ça veut dire qu'on créé un nouveau personnage (p). Donc il faut passer à ta fonction l'adresse d'un personnage existant.
Finalement, il faut faire un truc genre :
Code: Tout sélectionner
void Armure::equiperArmure(Personnage *p)
{
    cout<<"Ce personnage vient de s'equiper de cette armure"<<endl;
    p->vie=(this->pvProtection)+(p->vie);
    cout<<"Vie: "<<p->vie<<endl;
}
Tibo
Administrateur du site
 
Messages: 147
Inscription: 26 Mar 2008, 13:58

Re: Erreur pour une fonction

Messagede Miceli » 14 Mar 2010, 20:44

Merci de votre réponse , je reviens car j'ai une nouvelle erreur que j'obtiens pour la première fois :

Erreur 1 error C2471: impossible de mettre à jour la base de données 'c:\users\antonio\documents\visual studio 2008\projects\projet\projet\debug\vc90.pdb' du programme c:\users\antonio\documents\visual studio 2008\projects\projet\projet\arme.cpp 1 projet


L'erreur se situe dans tous mes fichiers aux niveaux des include.

Merci de votre aide
Miceli
 

Re: Erreur pour une fonction

Messagede Tibo » 15 Mar 2010, 13:30

Salut cette erreur, c'est visual studio que se l'a créé tout seul comme un grand.
Donc pour la résoudre, je pense que quitter et réouvrir visual studio résoudra ton problème. Autrement, il suffit de faire build/rebuild solution.

J'espère que ça remarche !
Tibo
Administrateur du site
 
Messages: 147
Inscription: 26 Mar 2008, 13:58

Re: Erreur pour une fonction

Messagede Miceli » 16 Mar 2010, 21:15

Oui ca a remarché , j'ai une nouvelle question c'est pas une erreur pour une fois.
Est il possible de créer une classe uniquement pour y mettre des fonctions, une classe qui ne servirait pas à créer d'instances ?

Par exemple une classe Affichage qui nous permettrait de faire des dessins en ascii sans encombrer le Main.

Merci de votre aide
Miceli
 

Re: Erreur pour une fonction

Messagede Tibo » 17 Mar 2010, 19:00

Salut,
c'est tout à fait possible, dans ce cas tu créé tes fonctions en static pour pouvoir les utiliser comme ça :
Code: Tout sélectionner
Affichage::dessinePerso()


Du coup, plus besoin de créer un objet de type Affichage....
Tibo
Administrateur du site
 
Messages: 147
Inscription: 26 Mar 2008, 13:58


Retourner vers Cpp

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron
Hit-Parade des sites francophones