error C2864 只有静态常量整型数据成员才可以在类中初始化

Posted 柳鲲鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error C2864 只有静态常量整型数据成员才可以在类中初始化相关的知识,希望对你有一定的参考价值。

  LINUX编译完成的东西,要移植到WINDOWS上。代码如下:

class NPPluginApp
{
private:
    int  pluginID        = -1;
    bool bIsValid        = false;
    bool bIsProxyStarted = false;
};

在VS中编译,结果就报错了:

npplugin_app.h(37): error C2864: “NPPluginApp::pluginID”: 只有静态常量整型数据成员才可以在类中初始化

解决办法:

  • 改代码,在构造器中初始化。
  • 升级VS(2015)?
  • 有人说加个static,外部初始化,这显然与代码本意不符。
class NPPluginApp
{
private:
    static int  pluginID;
};

int NPPluginApp::pluginID = 0;

以上是关于error C2864 只有静态常量整型数据成员才可以在类中初始化的主要内容,如果未能解决你的问题,请参考以下文章

静态常量非整形成员变量的初始化问题

为啥类的常量数据成员需要在构造函数中初始化?

操作系统中的内存分区

火山中文编程(PC) -- 变量与常量

C++中静态成员变量(不支持在类定义中初始化不是常量的静态数据成员)

类成员