关于c++引用的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 17:02:56
我在书见到这样的运算符重载:
array<T>&operator = (const array<T>&rhs)

这里有两个&号,后边的我知道,是定义一个array型的常引用做形参,以便于改变实参值,但是前边那个&号有什么意思呢,书上说把重载的"="返回值指定为引用,我想不出来有什么作用,能给我简单的解释一下吗?

array<T>& operator= (const array<T>& rhs)
首先你要知道函数调用过程中是怎样传递参数,在C++中如果函数参数或返回类型是类类型的话,并且不是使用指针或者引用,那么就会使用该类的复制构造函数复制一个临时对象进行操作。
用引用传递可以防止复制对象,直接将原对象传递到函数里进行操作。

返回值定义为引用之后,你可以直接对那个引用值进行操作。
同时还能进行连续操作:
a=b=c=d;
这是为了跟基本数据类型一致。