我有問題讓我的重載構造函數工作。繼續收到一個問題,說只有一個拷貝構造函數和析構函數。我應該使用私人枚舉技術,因此使用成員函數如setWeaponSword()
(最後四個函數)。私人枚舉與公共重載構造函數
這裏是我的類聲明:
class Knight{
public:
enum Race{ ALTMER, IMPERIAL, KHAJIIT };
Knight(Race newRace, short int newHealth, short int newStamina, Weapon newWeapon);
Knight(const Knight &copiedKnight);
~Knight();
void setRace(const Race newRace);
Race getRace();
void setHealth(const short int newHealth);
short int getHealth();
void setStamina(const short int newStamina);
short int getStamina();
void setWeaponBow();
bool isWeaponBow();
void setWeaponSword();
bool isWeaponSword();
private:
enum Weapon { BOW , SWORD};
Race race;
short int health;
short int stamina;
Weapon weapon;
};
這裏是它的簡單的成員函數文件:
//Defualt values for variables Needed
Knight::Knight(Race newRace, short int newHealth, short int newStamina, Weapon newWeapon) : newRace(IMPERIAL), newHealth(50), newStamina(35), newWeapon(SWORD)
{
setRace(newRace);
setHealth(newHealth);
setStamina(newStamina);
}
我的思維過程是。如果我找不到它,我無法通過Weapon
。這就是爲什麼我認爲我必須使用我的類中的最後四個函數來操縱數據才能得到它。我不知道如何。請讓我知道一些基本知識。
什麼是錯誤,它發生在哪裏?另外,通過非const引用來獲取副本是非常奇怪的。 –
也許你的編譯器知道Skyrim屬於Nords,並且在你包含它們之前它拒絕編譯你的程序。 –
@JamesRoot在重載構造函數的類聲明中發生。 – DrakeJacks