1
的靜態成員,我是一個新手,C++和具有以下問題:兒童類沒有父
我有一個父類,稱爲怪物:像這樣
class Creature
{
public:
bool isActive;
std::string name;
int attackNumOfDice, attackNumOfSides,
defenseNumOfDice, defenseNumOfSides;
int armor, strength;
Creature();
//two virtual functions determine the damage points
virtual int attack();
virtual int defend();
void halveAttackDice();
void setStrength(int toSet);
void setStatus(bool activity);
};
和5子類:
.h文件中:
class Child : public Creature
{
int attack();
int defend();
}
實現文件:
int Child::isActive = true;
std::string Child::name = "";
int Child::attackNumOfDice = 2;
...
int Child::attack()
{
...
}
intChild::defend()
{
...}
然而,當我嘗試編譯這樣我得到所有5個子類相同的錯誤:
child.cpp:6: error: ‘bool Child::isActive’ is not a static member of ‘class Child’
child.cpp:7: error: ‘std::string Child::name’ is not a static member of ‘class Child’
child.cpp:8: error: ‘int Child::attackNumOfDice’ is not a static member of ‘class Child’
...
我不明白爲什麼說不是一個靜態的成員時,我從來沒有一個定義?
謝謝...有沒有辦法只使用父類中的構造函數呢?提示說應該只有一個構造函數 – 2015-02-12 02:18:16
yes ......你可以使用這個sintax:Child :: Child():Creature(){}從子類的構造函數調用父構造函數。您只需將您的子類構造函數留空,並且它將運行父構造函數中存在的代碼。 – 2015-02-12 02:24:13
如果您嘗試在構造函數中初始化變量,則使用構造函數體中的構造函數初始化程序列表,即賦值語句的intead。 – 2015-02-12 03:26:21