【发布时间】:2017-12-26 10:29:29
【问题描述】:
我读到了代码 sn-p here。请搜索“常量类数据成员”以进入该部分。代码如下:
class Test
{
const int i;
public:
Test (int x)
{
i=x;
}
};
int main()
{
Test t(10);
Test s(20);
}
我使用 VS2013 警告我它不正确。据我所知, const 成员变量只能由初始化列表初始化。某事。喜欢:
Test (int x):i(x){}
更新的 C++ 标准是否更新来支持它(如果是这样,更改听起来很合理,在函数体中初始化似乎没有区别,对吧?)?或者文件出错了(我想它不会犯这样的错误)。
【问题讨论】:
-
第一个代码 sn-p 在任何 C++ 标准中都不正确。
-
是的,它可以被初始化。但你不是在初始化它,而是在分配它。
-
您应该继续学习本教程。构造函数初始化列表稍后解释studytonight.com/cpp/initializer-list-in-cpp.php
标签: c++ initialization constants