Цель возврата по константному значению? [дубликат]

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

Какова цель константы в этом?

const Object myFunc(){
    return myObject;
}

Я только начал читать Effective C ++, и пункт 3 поддерживает это, и поиск Google подбирает похожие предложения, но также контрпримеры. Я не понимаю, почему использование const здесь когда-либо было бы предпочтительнее. Предполагая, что возврат по значению желателен, я не вижу причин защищать возвращаемое значение. Приведенный пример того, почему это может быть полезно, предотвращает непреднамеренное приведение возвращаемого значения типа bool. Фактическая проблема состоит в том, что неявное приведение типа bool должно быть предотвращено с помощью ключевого слова explicit.

Использование здесь const предотвращает использование временных объектов без присваивания. Поэтому я не мог выполнять арифметические выражения с этими объектами. Не похоже, что когда-либо была полезна безымянная константа.

Что дает использование здесь const и когда это предпочтительнее?

РЕДАКТИРОВАТЬ: Измените пример арифметики на любую функцию, которая изменяет объект, который вы, возможно, захотите выполнить перед присваиванием.

119
задан ROMANIA_engineer 1 December 2017 в 14:30
поделиться