return *this和return this的区别
别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针)。
正确答案为:return *this返回的是当前对象的克隆(当然, 这里仅考虑返回类型为A, 没有考虑返回类型为A& )。return this返回当前对象的地址(指向当前对象的指针), 下面我们来看看程序吧:
#include <iostream>
using namespace std; class A
{
public: int x; A* get() { return this; }
}; int main()
{ A a; a.x = 4; if(&a == a.get()) { cout << "yes" << endl; } else { cout << "no" << endl; } return 0;
}
结果为:yes
再看:
#include <iostream>
using namespace std; class A
{
public: int x; A get() { return *this; //返回当前对象的拷贝 }
}; int main()
{ A a; a.x = 4; if(a.x == a.get().x) { cout << a.x << endl; } else { cout << "no" << endl; } if(&a == &a.get()) { cout << "yes" << endl; } else { cout << "no" << endl; } return 0;
}
结果为:
4
no
return *this和return this的区别相关推荐
- 多线程编程:return、pthread_exit()、exit()函数区别
多线程编程:return.pthread_exit().exit()函数区别: return: 返回到调用者那里去 pthread_exit(): 将调用该函数的 ...
- return 、break 和 continue的区别
return .break和continue的区别和作用 return关键字并不是专门用于跳出循环的,return的功能是结束一个方法. 一旦在循环体内执行到一个return语句,return语句将会 ...
- 中断语句break、continue、return、exit和goto的区别
1.continue语句 continue语句是这5种结束循环的方式中最特殊的,因为它并没有真的退出循环,而是只结束本次循环体的执行,所以在使用continue的时候要注意这一点. 下图为各种循环结构 ...
- C语言:return 0 , return 1 和 return -1 以及 return ,break 的区别
1. return 没有返回值 和 break的区别: return 多用于void 类型的函数. 例如: void aa(){while(1){for(){return;//break;}if() ...
- python中return0与return1_关于C++中的return 0和return 1的区别
展开全部 return 0和return 1的区别主要体现在不同退出状态等方面,详细解释如下: 1.两e69da5e887aa62616964757a686964616f31333366306531者 ...
- return false;和e.preventDefault;的区别
因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagati ...
- return,break,continue三者区别
break用于完全结束一个循环,跳出循环体.不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码. break不仅可以结束其所在的循环,还可结束其外层循环.此时需要 ...
- C++中return 0;与return;的区别
return语句有两种形式: 1.return;//不带返回值的return语句 2.return 0;//带返回值的return语句,或者返回一个变量或一个函数. 不带返回值的return语句用于, ...
- return 0和return的区别
return语句有以下形式: return;//不带返回值的return语句 return 0;//带返回值的return语句,或者返回一个变量或一个函数. return 1//表示函数异常结束 不带 ...
- JavaScript 中的return true 和return false
2019独角兽企业重金招聘Python工程师标准>>> 1.对于return true 和 return false: return false表示返回一个false值,也就是说提交 ...
最新文章
- 64位windows驱动使用asm
- ue4 截图_UE4中创建赛博朋克中国城市
- LSTM简介以及数学推导(FULL BPTT)
- C指针原理(44)-汇编基础
- 介绍神经网络_神经网络介绍
- 给Android程序员的一些面试建议,帮你突破瓶颈
- 5.6亿人没有存款、人均负债13万,大数据揭示负债累累的年轻人
- 昨晚停网后,我写了一段Python代码破解了隔壁小姐姐的wifi密码,结果亮了!
- 重磅!深度学习的顶级会议ICLR 2020 数据图文详解
- mysql配置命令_MySQL基本配置命令总结
- 2014年0417的工作计划
- 455 periodic strings
- 游戏筑基开发之C语言打印(printf)中文时出现乱码的解决方案
- H264 STAP-A解包代码(测试通过)
- Android:根据阳历日期获取农历日期
- 信息学奥赛一本通:题解目录 (〃‘▽‘〃)点个赞吧
- android多个悬浮窗口的实现,android实现桌面移动悬浮窗口
- 孩子立刻就不玩游戏了,因为他找到更好玩的东西!
- nodejs遍历一个目录下所有的文件
- Neo4j Desktop版本的安装学习