const修饰的变量是不可更改的,在C++ 11标准中可以使用以下方式初始化:
class A {
public:
const int size = 10;
}
C++11新出的类内初始值允许这种做法,所以上面的语法是有效的。
C++11标准之前版本的编译器会报错:
main.cpp:6: error: ISO C++ forbids initialization of member ‘size’
main.cpp:6: error: making ‘size’ static
这是在g++4 (GCC) 4.4.7
环境下编译的结果,不支持这种写法,只能在类初始化列表中初始化:
class A {
public:
const int size;
A(): size(10){
}
}
此处评论已关闭