Probleme pointeur sur classe et méthodes
eddynamique
-
eddynamique -
eddynamique -
Bonjour,
Voila le code de ma fonction test :
Mon fichier Joueur.h :
Et le constructeur de Joueur :
Voila, donc mon problème, c'est que quand je compile et j'execute, on dirai que mes appel de méthodes ne fonctionnent pas.... Voila ce que j'ai dans ma console :
Voila le code de ma fonction test :
void test ()
{
Joueur eddy ("eddy","DK");
string nom = eddy.getNom();
string perso = eddy.getPersonnage();
cout << "Nom : " << nom << " Perso : " << perso << endl;
}
Mon fichier Joueur.h :
#include <iostream>
using namespace std;
class Joueur
{
private:
int nbVictoire;
int nbDefaite;
int point;
int place;
string nom;
string personnage;
public:
Joueur (string nom, string personnage);
~Joueur () {}
int getNbVictoire () {return nbVictoire;}
int getNbDefaite () {return nbDefaite;}
int getPoint () {return point;}
int getPlace () {return place;}
string getNom () {return nom;}
string getPersonnage () {return personnage;}
};
Et le constructeur de Joueur :
#include "Joueur.h"
Joueur::Joueur (string nom, string personnage)
{
nbVictoire = 0;
nbDefaite = 0;
point = 0;
place = 0;
nom = nom;
personnage = personnage;
}
Voila, donc mon problème, c'est que quand je compile et j'execute, on dirai que mes appel de méthodes ne fonctionnent pas.... Voila ce que j'ai dans ma console :
Nom : Perso :
A voir également:
- Probleme pointeur sur classe et méthodes
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Comment classer par ordre alphabétique sur excel - Guide
- Classe ram - Guide
- Bluetooth mercedes classe a - Forum Autoradio
1 réponse
Bonjour,
Il y a une ambiguïté à lever entre le nom des paramètres dans le constructeur et le nom des variables membres privées.
Dans toute méthode le pointeur this désigne l'adresse de l'instance sur laquelle la méthode a été appelée.
Une autre solution est d'adopter une convention d'écriture non ambiguë.
La notation hongroise (voir sur Wikipédia) préconise un "m_" comme préfixe d'une variable membre.
portée _ Type|Nom
int g_iTheNumber; // entier signé global
unsigned int m_uNumNames; // entier non signé membre d'une classe
char cMyLetter // caractère paramètre ou variable locale.
M.
Il y a une ambiguïté à lever entre le nom des paramètres dans le constructeur et le nom des variables membres privées.
Joueur::Joueur (string nom, string personnage)
{
...
this->nom = nom;
this->personnage = personnage;
}
Dans toute méthode le pointeur this désigne l'adresse de l'instance sur laquelle la méthode a été appelée.
Une autre solution est d'adopter une convention d'écriture non ambiguë.
La notation hongroise (voir sur Wikipédia) préconise un "m_" comme préfixe d'une variable membre.
private: std::string m_sNom;
portée _ Type|Nom
int g_iTheNumber; // entier signé global
unsigned int m_uNumNames; // entier non signé membre d'une classe
char cMyLetter // caractère paramètre ou variable locale.
M.
eddy