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