我正在使用codepad.org
class a {
private:
const unsigned long b = 100;
};
第3行:错误:ISO C ++禁止成员'b'
的初始化由于-Wfatal-errors而导致编译终止。
很抱歉,如果我错过了一些明显的东西,但可能出现了什么问题?
答案 0 :(得分:3)
在C ++ 11之前,您只能初始化类定义中的静态const数据成员:
static const unsigned long b = 100;
这通常是你想要的。让a
的所有实例在它们之间重复这个常量值没有多大意义。
如果您启用了C ++ 11支持,your code will compile。
答案 1 :(得分:1)
只允许C ++ 03中的static
const
个整数类型进行类内初始化,而且您的变量不是static
。
要么使它static
(在这种情况下,你应该 - 请注意你还必须在这种情况下定义它),或使用C ++ 11编译器。