构造函数的初始化列表

1.构造函数的初始化列表就是在构造函数形参表后面以一个冒号开始,接着是一个逗号分隔的数据成员列表,每个数据成员后面跟一个放在圆括号中的初始化式。如下所示:

2.为什么需要构造函数初始化列表呢? 一般情况下,如果没有初始化列表,可以在构造函数体中对数据成员赋值,两者的效果是一样的,但是在以下三种情况时候,初始化列表是必须的: 

(1)没有默认构造函数的类类型成员。因为如果没有为该类成员提供初始化式,则编译器会隐式地使用成员类型的默认构造函数。如果那个类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。在这种情况下,必须提供初始化式。 

(2)当数据成员是const类型时。因为不能采用在构造函数体内对该const类型数据成员赋值的方法。 

  (3) 当数据成员是引用类型时。因为引用类型的对象只能被初始化不能被赋值。 

3.成员初始化的次序是就是声明成员的次序,最好按照与成员声明顺序一致的次序编写构造函数的初始化列表,此外,尽可能避免使用成员来初始化其他成员。

 4.注意:构造函数初始化式只在构造函数的定义中而不是声明中指定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值