class A {
public:
static int i;
static int inc();
};
int A::inc() {
i++;
return i;
}
int main() {
A::inc();
}
我们知道我们可以从静态方法访问静态成员变量。 但是这段代码给了我一个错误
"A::i", referenced from:
A::inc() in ccn8PKhC.o
ld: symbol(s) not found for architecture x86_64
有人可以告诉我我错过了什么
答案 0 :(得分:5)
这是链接器错误。您已声明了变量,但尚未对其进行定义,因此链接器无法找到它。
添加:
int A::i = 0;
全局某个.cpp文件(在您的类和任何函数之外)来定义它。如果项目中有多个.cpp文件,则定义只需要在其中一个文件中。