Я читаю книгу о 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, и поскольку он возвращает ссылку на константу, часть = z не может быть выполнена. Но почему?