我有一個關於受保護變量的問題。也許我沒有真正理解他們,但不是使用它們的原因,孩子們可以使用它們嗎?總的來說,我想減少生命點。無法訪問指針的受保護的int變量父類
這裏是我的代碼: 頭文件
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);
};
一流的戰鬥機:
void Fighter::attackFighter(Fighter * f)
{
if (isalive())
{
f->lifepoints -= randomval(0, offensePoints);
}
}
級戰士
void Warrior::attackFighter(Fighter * f)
{
if (isalive())
{
f->lifepoints -= randomval(0, offensePoints);
}
}
你的錯誤是什麼? –
在成員Fighter :: lifepoints不能訪問「通過」「戰鬥機」 - 指針(爲我的英語sry) –
它絕對是一個重複,甚至有一個解決方法可用鏈接複製http://stackoverflow.com/ a/1414851/817643 – StoryTeller