Разве здесь не нужен модификатор const? [Дубликат]

На этот вопрос уже есть ответ здесь:

Как возвращаемый объект может быть назначен? 1 ответ

"Эффективный С ++ » Пункт 3 говорит "Используйте const, когда это возможно "и это дает пример как:

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

чтобы клиенты не могли совершать такие злодеяния:

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

Но развеt нереферентное возвращаемое значение функций ужеRvalue? Так зачем же это делать?

Ответы на вопрос(5)

Ваш ответ на вопрос