我有以下類:「多重定義」錯誤。我究竟做錯了什麼?
class Character
{
public:
Character();
Character(std::string char_name, Race char_race, Gender char_gender);
~Character();
int get_id() { return this->char_id; }
std::string get_name() { return this->name; }
Race get_race() { return this->race; }
Gender get_gender() { return this->gender; }
private:
int char_id;
static int * char_count;
std::string name;
Race race;
Gender gender;
};
int * Character::char_count = 0;
#endif // CHARACTER_H
注意靜電場,這是外部類初始化。
這裏的實現:
Character::Character()
{
this->char_id = *char_count;
char_count++;
}
Character::Character(std::string char_name, Race char_race, Gender char_gender)
{
this->char_id = *char_count;
char_count++;
this->name = char_name;
this->race = char_race;
this->gender = char_gender;
}
Character::~Character()
{
}
顯然,我的編譯器不喜歡這個。產生的錯誤是「Character :: char_count的多重定義」,但我沒有看到多重定義。
???
發佈較長版本的錯誤消息。 –
實際代碼中包含的守衛'#ifdef' /'#define'是否真的缺失? – sharptooth