只能用intialization list 而不能用assignment

当类中含有const或reference 成员变量
原因:
1,构造函数的 {} 内的操作只能是赋值.
调用构造函数的时候,首先是给该实例(类的具体对象)分配空间.
使用初始化列表的话,就在分配空间的时候,同时将其空间初始化.
执行到构造函数的大括号里的时候,所有成员的空间都已经分配好了,无论是否已经被初始化过,对其调用的“=”只能是赋值,
2,初始化与赋值是不同的:
(1)对象的初始化行为发生在它初次获得一个值的时候;赋值发生于"已初始化对象被赋值新值"的时候.
(2)前者由constructor执行;后者由operator=执行.
(3)另一方面assignment动作的目标可能已经拥有配置得来的资源,在新资源被赋值过去之前,旧资源必须先行释放.
3,常量变量和引用只能被初始化,所以必须在初始化列表中完成.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值