C++列表初始化的存在意义
列表初始化的作用
列表初始化是初始化行为:
1 |
|
大括号里写叫做赋值行为:
1 |
|
首先要搞清楚他俩并不是等价的。
没有了列表初始化,仅仅依靠大括号很难解决下面几个问题:
在大括号内无法初始化父类子对象,因为父类子对象没有名字。
是的 这个父类子对象没有名字,我们没法在大括号里直接初始化。
1 |
|
所以委托构造函数也是同理,构造函数是无名的,没法直接调用,因此你还是要用列表初始化,大括号会使得代码臃肿。
引用
和const变量
初始化无法通过大括号初始化
1 |
|
影响编译器优化性能
综上所述,请尽量使用列表初始化。
Reference:
C++构造函数为什么要依赖初始化列表? - Nessaj的回答 - 知乎 https://www.zhihu.com/question/485487580/answer/2110530722
C++构造函数为什么要依赖初始化列表? - IceBear的回答 - 知乎 https://www.zhihu.com/question/485487580/answer/2110539152
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!