C++ static变量出现 无法解析的外部符号:public:static的错误

解决方法:

除了在头文件中定义以外,应该在类的生命之外重新定义一次。

.h中:

class A
{
    ...
 public:
    static int a;
};

.cpp中:

#include ...

int A:a = 0;

原因:

静态变量虽然是成员变量,但是静态变量和全局变量都是在同一存储区存储的,程序初始化的时候就需要对该变量做初始化。所以静态变量的表现就跟全局变量一样,需要类内声明、类外定义。

猜你喜欢

转载自blog.csdn.net/mikasoi/article/details/84489620