Разница между ссылкой и константной ссылкой как параметром функцииC++

Программы на C++. Форум разработчиков
Anonymous
Разница между ссылкой и константной ссылкой как параметром функции

Сообщение Anonymous »

Вот простой фрагмент кода C++:

Код: Выделить всё

A foo(){
A a; // Create a local A object
return a;
}

void bar(const A & a_r){

}

bar(foo());
Почему аргумент функции bar должен быть константной ссылкой, а не просто ссылкой?
Я знаю, что ссылка нужна для того, чтобы избежать накладных расходов на копирование. и const предназначен только для чтения. Но здесь мне нужно сделать ссылку константной, иначе, если я удалю «const», g++ выдаст мне ошибку.
Я предполагаю, что возвращаемый объект foo() является временным объектом, и ему не разрешено изменять значение временного объекта?

Подробнее здесь: https://stackoverflow.com/questions/171 ... -parameter

Вернуться в «C++»