¿No es el modificador const aquí innecesario? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo puede un objeto devuelto ser asignable? 1 respuesta

Los "C ++ eficaz"El artículo 3 dice" Use const siempre que sea posible ", y da un ejemplo como:

const Rational operator*(const Rational& lhs, 
                            const Rational& rhs);

para evitar que los clientes puedan cometer atrocidades como esta:

Rational a, b, c;
...
(a * b) = c;   // invoke operator= on the result of a*b!

Pero no es el valor de retorno no de referencia de las funciones ya es unvalor? Entonces, ¿por qué molestarse en hacer esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta