等号重载返回对象本身的意义
来源:8-4 运算符重载

duye123456
2021-07-30
void Complex::operator=(const Complex& x){
_real = x._real;
_image = x._image;
return;
}
老师,这个等号重载这么写也可以,为什么要有返回值,我理解是“=”左边的对象调用了=这个函数,把x里面成员变量的值赋给了该对象的成员变量,既然已经赋值完成为何还要再把该对象返回出去,是为了方便后续操作吗?
写回答
1回答
-
根据《Effective C++》条款15,当定义自己的赋值运算符时,必须返回赋值运算符左边参数的引用,*this。如果不这样做,就会导致不能连续赋值,或导致调用时的隐式类型转换不能进行,或两种情况同时发生。
212021-07-30
相似问题