简单的静态成员变量有关问题

2017-03-02 1213212
简单的静态成员变量问题
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;