对象成员变量初始化列表探索

问题1:何时必须使用成员初始化列表?有以下几种情况

1.如果这个成员是个引用。2.如果这个成员是个const类型成员。3.如果这个类是继承一个基类,并且基类中有构造函数,这个构造函数里边还有参数。4.如果成员变量类型是个某个类类型,而这个类的构造函数带参数。

问题2:使用初始化列表的优势

1.除了必须用初始化列表的场合,初始化列表肯定有其他目的的。就是提高程序的运行效率。尤其是对于类类型成员变量放到初始化列表中能够比较明显的看到效率的提升。对于简单的基础类型的成员变量,比如,int m_test,放在初始化列表或者放在函数体里效率差别不大。提醒:写程序的时候,成员变量尽量放在初始化列表里。

问题3:初始化列表细节探究

1.初始化列表中的代码可以看作是被编译器安插到构造函数中的,只是这些代码有些特殊,这些代码是在任何用户自己的构造函数体之前被执行的。即,初始化列表是先于构造函数体之前进行执行的。

2.这些列表中的变量的初始化顺序是定义顺序,而不是在初始化列表中的顺序。不建议在初始化列表中进行两个两个都在初始化列表中出现的成员之间的初始化。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

repinkply

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值