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){ } } |
评论