На этот вопрос уже есть ответ:
Какова цель константы в этом?
const Object myFunc(){
return myObject;
}
Я только начал читать Effective C ++, и пункт 3 поддерживает это, и поиск Google подбирает похожие предложения, но также контрпримеры. Я не понимаю, почему использование const здесь когда-либо было бы предпочтительнее. Предполагая, что возврат по значению желателен, я не вижу причин защищать возвращаемое значение. Приведенный пример того, почему это может быть полезно, предотвращает непреднамеренное приведение возвращаемого значения типа bool. Фактическая проблема состоит в том, что неявное приведение типа bool должно быть предотвращено с помощью ключевого слова explicit.
Использование здесь const предотвращает использование временных объектов без присваивания. Поэтому я не мог выполнять арифметические выражения с этими объектами. Не похоже, что когда-либо была полезна безымянная константа.
Что дает использование здесь const и когда это предпочтительнее?
РЕДАКТИРОВАТЬ: Измените пример арифметики на любую функцию, которая изменяет объект, который вы, возможно, захотите выполнить перед присваиванием.