为了账号安全,请及时绑定邮箱和手机立即绑定

成员是const的,为什么在初始化列表里赋值就可以呢

.....?

正在回答

2 回答

const对象是一旦被构造出来,其值就不能被改变了。

而构造初始化列表就是用来构造成员变量的,对const成员来说,初始化列表中提供的值就作为构造它们的初值。所以这里并不是赋值操作。

3 回复 有任何疑惑可以回复我~
#1

wasai 提问者

怎么理解构造成员变量的。。
2015-10-30 回复 有任何疑惑可以回复我~
#2

wasai 提问者

非常感谢!
2015-10-30 回复 有任何疑惑可以回复我~
#3

onemoo 回复 wasai 提问者

所谓构造一个类实例,也就是将类中的成员变量都构造出来。构造初始化列表等于是调用成员变量的构造函数,不是赋值。
2015-11-01 回复 有任何疑惑可以回复我~

编译器执行顺序决定的。 先'替换'(注意:不是赋值)初始化列表,在执行构造函数。如果你把初值放构造函数里,那就变成赋值操作,这是不能对const 成员变量 进行的。that‘s it.

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

成员是const的,为什么在初始化列表里赋值就可以呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信