解决方法:
除了在头文件中定义以外,应该在类的生命之外重新定义一次。
.h中:
class A
{
...
public:
static int a;
};
.cpp中:
#include ...
int A:a = 0;
原因:
静态变量虽然是成员变量,但是静态变量和全局变量都是在同一存储区存储的,程序初始化的时候就需要对该变量做初始化。所以静态变量的表现就跟全局变量一样,需要类内声明、类外定义。
解决方法:
除了在头文件中定义以外,应该在类的生命之外重新定义一次。
.h中:
class A
{
...
public:
static int a;
};
.cpp中:
#include ...
int A:a = 0;
原因:
静态变量虽然是成员变量,但是静态变量和全局变量都是在同一存储区存储的,程序初始化的时候就需要对该变量做初始化。所以静态变量的表现就跟全局变量一样,需要类内声明、类外定义。