J'ai une question sur les variables protégées. Peut-être que je ne les ai pas vraiment compris mais n'est pas la raison de les utiliser, que les classes d'enfants peuvent les utiliser? Globalement, je veux diminuer les points de vie.Impossible d'accéder à la variable int protégée du pointeur Classe parente
Voici mon code: fichier d'en-tête
class Fighter {
protected:
int offensePoints;
int defensePoints;
int lifepoints;
std::string name;
public:
Fighter(const std::string n);
virtual ~Fighter();
virtual void attackFighter(Fighter * f);
int randomval(int min, int max);
bool isalive();
void isattacked(Fighter * at, int dmg);
};
class Warrior : public Fighter
{
public:
Warrior(const std::string n);
virtual ~Warrior();
void attackFighter(Fighter * f);
int randomval(int min, int max);
bool isalive();
void isattacked(Fighter * at, int dmg);
};
classe Fighter:
void Fighter::attackFighter(Fighter * f)
{
if (isalive())
{
f->lifepoints -= randomval(0, offensePoints);
}
}
Classe Guerrier
void Warrior::attackFighter(Fighter * f)
{
if (isalive())
{
f->lifepoints -= randomval(0, offensePoints);
}
}
Quelle est votre erreur? –
Sur membre Fighter :: points de vie ne peut pas accéder "à travers" "Fighter" -pointer (sry pour mon englisch) –
Il est certainement un doublon, et il y a même une solution de contournement disponible dans le dup lié http://stackoverflow.com/ a/1414851/817643 – StoryTeller