实现MyString类(三)—关于返回对象的说明
来源:互联网 发布:qq社交网络案例分析 编辑:程序博客网 时间:2024/05/29 12:04
通过前两章类得设计和实现我们发现,在我们的函数返回结果中,有的是返回对象的引用,有的返回一个一般得类对象,还有的返回const型的类对象引用,那么究竟我们该怎么设计方法的返回类型呢,下面我们就进行相关的分析和学习。
1.返回指向const(非const)对象的引用。
使用const一般我们旨在提高效率,那么同时被const限定的对象或者参数在被调用的过程中也不能进行任何修改,要不然程序会进行报错。
如果函数返回传递给它的对象,那么可以使用返回指向对象的引用进行返回来提高效率。
举例:
那么上面两个函数都可以实现两个字符串的合并操作,但是第一个返回的是关于对象的一个引用,而第二个是直接返回对象。那么这里我们有三点进行说明:
1)直接返回对象时需要调用复制构造函数,而返回引用不会,所以第一个函数效率更高。
2)返回引用的对象必须在函数调用的时候还存在。this是指向当前对象的指针,肯定在调用的时候存在,所以满足条件
3)因为返回对象的时候对象已经被改变了,所以不能返回const类型。(当返回的对象类型没有变化时,可以返回const类型提高效率)
2.返回对象
一般返回对象的都是被调用函数局部定义的对象,因为局部定义的对象在调用结束的时候,将调用析构函数析构,那么等到控制权回到调用函数的时候,引用的对象已经不再存在。所以这种情况下,必须直接返回对象。
例子:
被重载的运算符一般都属于这一类,在这个过程中调用复制构造函数是不可避免的。
3.我们也可是使用返回const对象以防止函数对对象的任何更改。
总结:
当我们要返回一个局部对象时,必须通过复制构造函数直接返回对象;
当我们要返回调用对象或者是没有公有复制构造函数的类得对象时,返回一个指向对象的引用。
如果两者都可以,那么我们优先选择返回引用以提高 效率。
- 实现MyString类(三)—关于返回对象的说明
- 第三课--之一(对象)实现MyString类的作业
- 实现MyString类(二)—MyString.cpp实现
- 实现MyString类(一)—类声明mystring.h
- MyString类的实现
- mystring类的实现
- string类的实现(mystring)
- C++找对象的季节(补)——MyString
- (一三〇)有关返回对象的说明
- 自定义字符串类MyString的C++实现
- C++ MyString类的简单实现
- MyString的实现
- MyString类实现
- 面向对象程序设计第二次实验课——mystring类实现
- 返回对象的说明
- 实现自己的mystring.h
- 【15】实现一个MyString类
- C++之实现MyString类
- notepad++ 实现打开lbi,dwt后缀文件默认用php语言着色解析
- 实体框架学习笔记(一) -- 实体定义
- yum安装Mysql
- 巧用数学函数生成函数表
- [abap] 'REUSE_ALV_GRID_DISPLAY_LVC' 的用法
- 实现MyString类(三)—关于返回对象的说明
- 小链表
- 连接MySQL5 CRecordset的open方法老是弹出odbc对话框,很烦人,怎么办?
- spring AOP实现(Annotation方式/静态文件配置方式)
- 将数字转换为字符串
- zz from http://www.cnblogs.com/harrychinese/archive/2011/03/13/some_hadoop_hive_intro_articles.html
- PHP最佳实践
- template 冒泡排序
- seo相关因素详解