Разница между ссылкой и константной ссылкой как параметром функции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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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