我正在使用 codepad.org
class a {
private:
const unsigned long b = 100;
};
第 3 行:错误:ISO C++ 禁止初始化成员“b”
编译因 -Wfatal-errors 而终止。
抱歉,如果我遗漏了一些明显的东西,但可能出了什么问题?
在 C++11 之前,只能在类定义中初始化一个静态 const 数据成员:
static const unsigned long b = 100;
无论如何,这通常是您想要的。a
让所有的实例都有这个常量值在它们之间重复并没有多大意义。
如果启用 C++11 支持,您的代码将编译.
只有 C++03 中的整数类型才允许进行类内初始化static
const
,而您的变量不是static
.
要么制作它static
(在这种情况下,你应该 - 请注意,你还必须在这种情况下定义它),或者使用 C++11 编译器。