关于运算符重载(c++)

来源:百度知道 编辑:UC知道 时间:2024/05/10 22:42:06
重载的时候
如这个
Fraction& operator+=(const Fraction& fra)
{
*this=*this +fra;
return *this;
}
中Fraction& 的&有什么用。。。
我知道是传引用。。但作用是什么。。去掉&之后有什么后果呢

既然知道是传引用,那就应该知道引用有什么用吧。
对引用的处理,就是对对象本体的处理,而不是对函数返回的一个临时对象进行处理。

举例来说,标准库vector的operator[]返回的就是引用,所以当你调用:
vector<string> v;
……
v[0].clear();
时,你清空的就是vector当中保存的那个string对象,而不是一个operator[]返回后保存在临时变量中的一个新的string对象。