다음 클래스가 있습니다."다중 정의"오류. 내가 뭘 잘못하고 있죠?
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의 다중 정의"이지만 여러 정의가 없습니다.
???
더 긴 버전의 오류 메시지를 게시하십시오. –
실제 코드에서 Include Guard'# ifdef' /'# define'이 정말로 빠졌습니까? – sharptooth