函数返回对象和对象的生命周期的结合

函数在返回自定义类型时,我们知道主调函数会为返回值开辟一个临时内存来存储这个返回值对象,但是在返回对象的时候也有一些特殊的情况,Main函数不会为返回的对象开辟内存。虽然在写代码的时候不会这样写,但是需要学会相关的分析,解决一些不能理解的现象:为了便于复习,写成博客。

有兴趣的同行可以对以下图片无损放大查看:


可以看见在对象的函数传参和返回值是一个对象时,如果不注意将产生多次的构造、拷贝构造、析构函数的调用,不断的函数参数的压栈、函数的栈帧的回退,这将极大的降低我们程序的效率!所以为了避免这些事情发生,有以下的三点的编程建议用于函数对象的传参和返回值

1、函数传参数的时候尽量传递引用
2、返回值的时候尽量返回临时对象
3、接收返回值的时候尽量以初始化一个变量接收该返回值







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值