我正在阅读一本关于 C++ 的书,更准确地说是关于运算符重载的书。
示例如下:
const Array &Array::operator=(const Array &right)
{
// check self-assignment
// if not self- assignment do the copying
return *this; //enables x=y=z
}
书上提供的关于返回 const ref 而不是 ref 的解释是为了避免像 (x=y)=z 这样的赋值。我不明白我们为什么要避免这种情况。我知道在此示例中首先评估 x=y ,并且由于它返回一个 const 引用,因此 =z 部分无法执行。但为什么?