http://www.zhihu.com/question/22821783/answer/22759545

来源:互联网 发布:ipv6商业应用网络 编辑:程序博客网 时间:2024/04/28 14:42
http://www.zhihu.com/question/22821783/answer/22759545

c++中有些重载运算符为什么要返回引用?

1. c++中有些重载运算符为什么要返回引用,单单为了避免析构再构造吗?
2. 在此情况下,返回值为NULL或类似情况怎么办?
3. 返回的引用赋给一个变量后,那个变量是不是引用?怎么理解?
4. 据说返回局部对象的引用非常危险,请问返回引用到底有什么作用?,难道输入输出流返回的不是局部对象的引用?
举报
添加评论 
分享
  邀请回答

查看全部 3 个回答

更多回答
2

刘项,github.com/lexdene

我只回答问题1,因为问题234,楼上的几位大牛已经说的很完整了。问题1:C++中有些重载运算符为什么要返回引用?答:因为C++标准中支持很多这种写法:int a; (a+=3)*=4;这不单发生在+=运算符上,还有=运算符。当然,大家最熟悉的应该是<<运算符:cout << "hel… 显示全部
2

匿名用户

题主还是没理清思路啊。要从两个角度分析这个问题:为什么返回应用?以及返回之后发生了什么?1、2 两问实际上是第一个问题:为什么在重载操作符的时候会返回引用?实际上这里的原因很简单:为了表达正确的语义。C++ 的操作符重载的全部意义就是为了让所谓… 显示全部
0 0