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