成员函数定义部分挪到cpp编译里出错为什么

class student
{
static string name;
public:
void show()
{
cout<<name<<endl;
}
};
此时编译正确,如果show函数改为类内声明,在cpp文件中定义,就编译出错,为什么?
(如果去掉第一句的static关键字,在cpp中定义则不出错)

静态成员必须要初始化(即,分配内存单元),在类声明之后加如下语句试试:
string student::name="Noname";
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜