Я читаю книгу о С++ и точнее о перегрузке оператора.
Пример следующий:
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 не может быть выполнена. Но почему?