简单的静态成员变量问题
Test.h
class CStudent
{
public:
CStudent()
{
nCnt = 20;
}
virtual ~CStudent();
static int nCnt;
void Show();
};
这样编译没问题。
如果我把CStudent()放在它的cpp文件中定义就出现编译错误,不知是什么原因?
Test.h
class CStudent
{
public:
CStudent();
virtual ~CStudent();
static int nCnt;
void Show();
};
Test.cpp
CStudent::CStudent()
{
nCnt = 20;
}
谢谢!!
[解决办法]
都不行的这样
你的nCnt未分配内存
需在类的定义之外定义这个变量,以分配内存的
[解决办法]
#include "B.h "
CStudent::CStudent()
{
}
int CStudent::nCnt=20;