[c++] c++对象的初始化方式

C++的对象初始化主要分为:

  1. 默认初始化
  2. 值初始化
  3. 零初始化
  4. 直接初始化
  5. 复制初始化
  6. 列表初始化
  7. 聚合初始化

1. 默认初始化是:什么都不做,或者使用值初始化。

2. 值初始化:类似调用了对象的默认构造函数,不同的类型有不同的行为。

3. 零初始化:值初始化的一个子集,对目标进行置零操作。

4. 直接初始化是直接从匹配的构造函数实参来构造对象,可能引发隐式类型转换。

5.复制初始化是从其他对象复制构造对象。当其他对象是临时构造的对象时,现代编译器可以把构造和复制的处理简化为直接在目标对象上进行直接初始化。

6.聚合初始化是对聚合体的每个对象进行初始化,每个对象可能采用不同的初始化方法。

参照表

理解 

对函数的形参,可以使用其他对象作为实参来进行复制初始化;也可以使用列表来完成临时对象和构造和复制的过程,可能被编译器优化成直接初始化。

返回值同理。

疑问

cppreference把labmda表达式的复制捕获划分为直接初始化表示不理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

blanklog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值