从静态函数C++中获取staic变量

Nee*_*ury -1 c++ static

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)

有人可以告诉我,我错过了什么

Ada*_*dam 5

这是链接器错误.您已声明了变量,但尚未对其进行定义,因此链接器无法找到它.

添加这个:

int A::i = 0;
Run Code Online (Sandbox Code Playgroud)

在.cpp文件(在您的类和任何函数之外)全局某处定义它.如果项目中有多个.cpp文件,则定义只需要在其中一个文件中.