问题描述:
在使用VS2015编译代码时,遇到了头文件失败的问题,并返回错误C2864:“具有类内初始值设定项的静态数据成员...”
解决方案:
错误C2864是由于在类内部定义了具有类内初始值设定项的静态数据成员导致的。在VS2015中,这种语法是不被支持的。
要解决这个问题,可以采取以下几个步骤:
extern
关键字声明该静态数据成员即可:// MyClass.h
class MyClass {
static int myStaticVar;
};// MyClass.cpp
int MyClass::myStaticVar = 0; // 只在一个源文件中进行定义和初始化
// OtherFile.cpp
extern int MyClass::myStaticVar; // 在其他源文件中使用extern声明
总结:
在VS2015中,错误C2864:“具有类内初始值设定项的静态数据成员...”是由于使用了类内初始值设定项的语法导致的。解决方法是将静态数据成员的定义放在类外部,并在类外部进行初始化。如果存在多个源文件,需要注意只在一个源文件中进行定义和初始化,并在其他源文件中使用extern声明。如果问题仍然存在,可以尝试更新Visual Studio或使用其他编译器。
领取专属 10元无门槛券
手把手带您无忧上云