Không thể liên kết sau hai tệp, khi tôi xóa từ khóa "tĩnh", thì không sao. Thử nghiệm với g ++. Kiểm tra với chính mình cho tệp đối tượng, thành viên tĩnh dường như được xuất dưới dạng biểu tượng đối tượng chung ... Tôi nghĩ rằng nó phải là một đối tượng cục bộ ...?nhiều định nghĩa cho thành viên tĩnh?
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);
}
Với thông tin lỗi:
/tmp/ccIdHsDm.o:(.bss+0x0): nhiều định nghĩa của `StaticClass :: a '
@Ropez: nó hoạt động tốt. Cảm ơn :) –
Tôi cảm thấy xấu với tình trạng của công việc, vì câu trả lời của ropez dường như đã mang lại cho bạn giải pháp mà bạn đang tìm kiếm. cảm thấy tự do để di chuyển dấu kiểm đến một của mình :) 1 cho anh ta, anyway. –
@Litb, cả hai bạn đều đúng :) bạn đã giải thích thêm. –