拷贝对象的一些编译器优化

编译器会减少拷贝

在不影响正确性的情况下,编译器会在传参和返回值的时候其减少一些拷贝

举个例子

A aa1 = 1;

 会直接将后面的1作为临时对象去返回,一般临时对象会在我们的print后面去销毁,而aa会在print前销毁,但是后来在编译器中aa直接没了

这里面的aa1如果不优化的情况下就是拷贝+拷贝构造,去拷贝构造这个1,应为我们是去传参的,这里面只是一函数,我们是去定义一个对象,所以是2步,而在这里面实际上只有一个构造

const A& aa2 = 1;

也是只有构造,说明我们我VS2022也是十分的激进

当然我们也是可以去匿名

f2(A(1));//匿名的口号里面的数字要写

在出现传值传参就会出现拷贝构造,与析构函数

证明临时对象

f2().print;//这里面f2是有返回值的才可以

我们的柔性数组数组还是使用malloc去调用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值