首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为何有些运算符的重载返回类型后要返回&

2013-02-19 
为什么有些运算符的重载返回类型后要返回&比如书上的代码重载、+、-、时返回类型后都加了&发现所有要加&

为什么有些运算符的重载返回类型后要返回&
比如书上的代码重载=、+=、-=、<<时返回类型后都加了&
发现所有要加&的结尾都是return *this;以及流运算符
但是我写了一个矩阵类

                            
[解决办法]
返回Matrix &的话直接返回的就是return的那个Matrix。返回Matrix的话,返回的是return的那个Matrix的临时副本(GCC下是个只读的临时副本)。
[解决办法]
& 表示的是引用啊,那么返回的时候就不用多一个临时对象的创建和析构了,于是提高了效率。
再则,如果需要修改返回的对象值,就必须返回引用,因为c++ 不允许对一个临时对象做修改。
其次,IO流的对象不允许复制和赋值,所以必须返回引用。

热点排行