C++笔记--返回对象还是返回引用
来源:互联网 发布:北京银行网银mac版 编辑:程序博客网 时间:2024/05/02 00:48
我们发现,在C++中,有些成员函数返回的是对象,而有些函数返回的又是引用。
返回对象和返回引用的最主要的区别就是函数原型和函数头。
Car run(const Car &) //返回对象
Car & run(const Car &) //返回引用
返回对象会涉及到生成返回对象的副本,这事调用函数的程序可以使用的副本,因此,返回对象的时间成本包括了调用复制构造函数来生成副本所需的时间和调用析构函数删除副本所需的时间。返回引用可以节省时间和内存。直接返回对象与按值传递对象类似,他们都生成临时副本。同样,返回引用与按引用传递对象类似,调用和被调用的函数对同一个对象进行操作。
并不是总是可以返回引用的,当函数不能返回在函数中创建的临时对象的引用,因为当函数结束时,临时对象将消失,因此这种引用是非法的,在这种情况下,应返回对象,以生成一个调用程序可以使用的副本。
如:
RMB& RMB::operator++(){ yuan++; return *this;}RMB RMB::operator++(int){ RMB temp(yuan); //创建对象 yuan++; return temp; //返回对象的副本}
通用的规则是,如果函数返回在函数中创建的临时对象,则不要使用引用,如果先创建一个对象,然后返回改对象的副本,则可以使用返回对象,如上述第二种情况。
如果函数返回的是通过引用或指针传递给它的对象,则应当按引用返回对象。当按引用返回调用函数的对象或作为参数传递给函数的对象。如上面的第一种情况。
0 0
- C++笔记--返回对象还是返回引用
- C++,返回对象的引用,语法练习
- 【Effective C++】必须返回对象时,别妄想返回引用
- 返回引用和对象
- C++返回对象和返回引用
- 必须返回对象,而不是引用
- C++:返回对象
- 必须返回对象时,别妄想返回引用(Effective C++_21)
- Effective C++——必须返回对象时,别妄想返回其引用或指针
- Effective C++学习笔记:必须返回一个对象时不要试图返回一个引用
- effective C++笔记之条款23:必须返回一个对象时不要试图返回一个引用
- Item 21:需要返回对象时,不要返回引用 Effective C++笔记
- C++:引用作为返回值
- 返回对象和返回对象的引用的区别
- String中返回对象和返回对象引用的对比
- 函数返回对象和返回对象的引用的区别
- 方法应该返回空对象还是null
- 方法应该返回空对象还是null
- Amazon AWS
- android手机路径问题(相册路径为null)
- java.security
- 点击top返回到页面顶部
- [LeetCode 324] Wiggle Sort II
- C++笔记--返回对象还是返回引用
- Launch screen interface file base name 对导航栏和标签栏适配的作用
- MFC中CSkinImage显示PNG图片,包括大图中含有一串小图(网狐)
- JAVA注释&标识符&关键字
- Unity3D游戏开发创建桌面快捷方式
- code vs 草地排水
- IOS UINavigationItem添加多按钮
- 60. Permutation Sequence
- 关于android:launchMode=“singleInstance”