关于引用的返回值

yingbinchina yingbinchina 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

在对操作符重载时,四则运算是不能返回引用的。

看到一个这样的解释:
(5)在另外的一些操作符中,却千万不能返回引用:+-*/ 四则运算符。它们不能返回引用,Effective C++[1]的Item23详细的讨论了这个问题。主要原因是这四个操作符没有side effect,因此,它们必须构造一个对象作为返回值,可选的方案包括:返回一个对象、返回一个局部变量的引用,返回一个new分配的对象的引用、返回一个静态对象引用。根据前面提到的引用作为返回值的三个规则,第2、3两个方案都被否决了。静态对象的引用又因为((a+b) == (c+d))会永远为true而导致错误。所以可选的只剩下返回一个对象了。

请问文中的:
静态对象的引用又因为((a+b) == (c+d))会永远为true而导致错误。
如何理解,请方便的话给出代码解释,谢谢!
...全文

相关推荐

引用作为函数返回值

一、引用作为函数参数   作为函数参数时引用有两种原因:   1、在函数内部会对此参数进行修改   2、提高函数调用和运行效率   关于第一点,都知道C++里提到函数会提到形参和实参。如果函数的参数实质是形参,不过这个形参的作用域只是在函数体内部,也是说实参和形参是两个不同的东西,要想形参代替实参,肯定有一个值的传递。函数调用时,值的传递机制是通过“形参=实参”来对形参赋值达到传值目的,产生了一个实参的副本。即使函数内部有对参数的修改,也只是针对形参,也是那个副本,实参不会有任何更改。函数一旦结束,形参生命也宣告终结,做出的修改一样没对任何变量产生影响。   例如: v

weixin_38688380

引用作为返回值的一些规则

引用作为返回值的一些规则引用作为返回值的一些规则引用作为返回值的一些规则

w踏雪w

返回值为引用类型的实例

引用是C++里德一个重要内容,有其独特的优势,这里给出返回值为引用类型的函数的例子

njuwst

cpp代码-函数返回值:值传递 指针传递 引用传递 (返回值 返回指针 返回引用) int Fun(int a); int *Fun(int a); int &Fun(int a); (别名)

cpp代码-函数返回值:值传递 指针传递 引用传递 (返回值 返回指针 返回引用) int Fun(int a); int *Fun(int a); int &Fun(int a); (别名)

weixin_38502239

引用作函数返回值.sln

引用作函数返回值.sln

Glücklich jeden Tag
评论 5
收藏 已收藏
分享
返回顶部
yingbinchina
C++ 语言 65,214 成员 250,514 内容