我们都知道声明一个静态变量,同时一定要在类外对其进行赋初值,如果你没有赋初值,那么会导致错误,这是其一;
其二,一般我们在类中使用静态,而类的书写格式是一个.h文件对应一个.cpp实现文件。如果你的赋初值声明写在了.h文件中,那么就会报这个错误。改正方法就是把声明移到.cpp文件中,问题得以解决(反正我的是这个原因)
//class_A.h
class class_A
{
public:
class_A();
~class_A();
static m;
};
//class_A.cpp
#include "class_A.h"
int class_A::m=0;
class_A::class_A(){}
class_A::~class_A(){}