C ++ por que o operador de atribuição deve retornar uma const ref para evitar (a = b) = c

Estou lendo um livro sobre C ++ e mais precisamente sobre a sobrecarga do operador.

O exemplo é o seguinte:

const Array &Array::operator=(const Array &right)
{
// check self-assignment
// if not self- assignment do the copying
return *this; //enables x=y=z
}

A explicação fornecida pelo livro sobre o retorno de const ref em vez de ref é evitar atribuições como (x = y) = z. Não entendo por que devemos evitar isso. Entendo que x = y é avaliado primeiro neste exemplo e, como retorna uma referência const, a parte = z não pode ser executada. Mas por que?

questionAnswers(5)

yourAnswerToTheQuestion