函数返回对象和对象的生命周期的结合
来源:互联网 发布:mac os x 10.13.1 cdr 编辑:程序博客网 时间:2024/06/05 20:31
函数在返回自定义类型时,我们知道主调函数会为返回值开辟一个临时内存来存储这个返回值对象,但是在返回对象的时候也有一些特殊的情况,Main函数不会为返回的对象开辟内存。虽然在写代码的时候不会这样写,但是需要学会相关的分析,解决一些不能理解的现象:为了便于复习,写成博客。
有兴趣的同行可以对以下图片无损放大查看:
可以看见在对象的函数传参和返回值是一个对象时,如果不注意将产生多次的构造、拷贝构造、析构函数的调用,不断的函数参数的压栈、函数的栈帧的回退,这将极大的降低我们程序的效率!所以为了避免这些事情发生,有以下的三点的编程建议用于函数对象的传参和返回值
1、函数传参数的时候尽量传递引用
2、返回值的时候尽量返回临时对象
3、接收返回值的时候尽量以初始化一个变量接收该返回值
阅读全文
0 0
- 函数返回对象和对象的生命周期的结合
- 函数返回对象和返回对象的引用的区别
- 类成员函数的函数对象与RIIA结合在多返回点函数中的应用
- 类成员函数返回对象和返回引用的区别
- Java中对象传引用与生命周期的结合
- 函数的返回值和临时对象的问题
- GCC 和 VS2005 对于函数返回对象的不同处理
- 如果函数的传入参数和返回值是对象
- 返回对象和返回对象的引用的区别
- String中返回对象和返回对象引用的对比
- java 对象的生命周期
- 对象的生命周期
- 持久对象的生命周期
- 对象生命周期的基础
- Cocoa对象的生命周期
- 对象的生命周期
- java对象的生命周期
- java对象的生命周期
- 剑指Offer面试题13:机器人的运动范围 Java实现
- gsdfghskdfghsdkfjghskdfgsdfggssdfgsdfg
- 11.6学习心得
- 1.向量
- UVA 10200 Prime Time
- 函数返回对象和对象的生命周期的结合
- 【最详细】将github上的项目源码导入eclipse详细教程
- nginx+wusgi部署django
- ContentProvide简单使用
- 移植u-boot-2012.04----支持DM9000网卡
- 进程间通讯——共享内存
- 2017腾讯LIVE开发者大会精彩回顾!
- MySQL总结(一)
- 11月面【三】