0

我正在使用 codepad.org

class a {
    private:
        const unsigned long b = 100;
};

第 3 行:错误:ISO C++ 禁止初始化成员“b”

编译因 -Wfatal-errors 而终止。

抱歉,如果我遗漏了一些明显的东西,但可能出了什么问题?

4

2 回答 2

3

在 C++11 之前,只能在类定义中初始化一个静态 const 数据成员:

static const unsigned long b = 100;

无论如何,这通常是您想要的。a让所有的实例都有这个常量值在它们之间重复并没有多大意义。

如果启用 C++11 支持,您的代码将编译.

于 2013-04-15T14:06:41.950 回答
1

只有 C++03 中的整数类型才允许进行类内初始化static const,而您的变量不是static.

要么制作它static(在这种情况下,你应该 - 请注意,你还必须在这种情况下定义它),或者使用 C++11 编译器。

于 2013-04-15T14:06:16.567 回答