¿No es el modificador const aquí innecesario? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
¿Cómo puede un objeto devuelto ser asignable? 1 respuestaLos "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?