猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为什么我更喜欢使用成员初始化列表?
为什么我更喜欢使用成员初始化列表?
我倾向于在构造函数中使用成员初始化列表.但我早就忘了这背后的原因.。
在构造函数中使用成员初始化列表吗?如果是,为什么?若否,原因为何?
侃侃尔雅
浏览 530
回答 3
3回答
达令说
除了上面提到的性能原因之外,如果您的类存储对作为构造函数参数传递的对象的引用,或者您的类有Const变量,那么除了使用初始化程序列表之外,您别无选择。
0
0
0
www说
基类初始化这里没有提到的构造函数初始化程序列表使用的一个重要原因是基类的初始化。根据构造的顺序,基类应该在子类之前构造。如果没有构造函数初始化程序列表,这是可能的,如果您的基类具有默认构造函数,该构造函数将在输入子类的构造函数之前调用。但是,如果基类只有参数化构造函数,则必须使用构造函数初始化程序列表来确保基类在子类之前被初始化。只具有参数化构造函数的子对象的初始化效率使用构造函数初始化程序列表,可以将数据成员初始化为代码中需要的状态,而不是首先将其初始化为默认状态&然后将其状态更改为代码中所需的状态。初始化非静态Const数据成员如果类中的非静态Const数据成员具有默认构造函数&不使用构造函数初始化程序列表,则无法将它们初始化到预期状态,因为它们将被初始化为默认状态。引用数据成员的初始化当编译器进入构造函数时,引用数据成员必须被初始化,因为引用不能在以后声明和初始化。这只有在构造函数初始化程序列表中才有可能。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
C
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续