두 개의 파일을 연결하지 못했습니다. "정적"키워드를 제거하면 괜찮습니다. g ++로 테스트되었습니다. readelf를 사용하여 개체 파일을 확인하십시오. 정적 멤버는 전역 개체 심볼로 내보내집니다 ... 로컬 개체라고 생각합니다 ...?정적 멤버에 대한 다중 정의?
static1.cpp
class StaticClass
{
public:
void setMemberA(int m) { a = m; }
int getMemberA() const { return a; }
private:
static int a;
};
int StaticClass::a = 0;
void first()
{
StaticClass statc1;
static1.setMemberA(2);
}
오류 정보와 static2.cpp
class StaticClass
{
public:
void setMemberA(int m) { a = m; }
int getMemberA() const { return a; }
private:
static int a;
};
int StaticClass::a = 0;
void second()
{
StaticClass statc1;
static1.setMemberA(2);
}
:
/tmp/ccIdHsDm.o:(.bss+0x0) : 여러 `StaticClass :: a '의 정의
@Ropez : 잘 작동합니다. 고마워요 :) –
로페즈의 대답이 당신에게 당신이 찾고있는 해결책을 제시 한 것 같아서, 나는 사태에 대해 나쁘다고 느낍니다. 체크 마크를 자유롭게 움직여서 +1 할 수 있습니다. 어쨌든 +1하십시오. –
@Litb, 둘 다 맞습니다 :) 더 설명했습니다. –