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){
    }
}
最后修改:2018 年 04 月 08 日
如果觉得我的文章对你有用,请随意赞赏