Вот простой фрагмент кода C ++:
A foo(){
A a; // create a local A object
return a;
}
void bar(const A & a_r){
}
bar(foo());
Почему аргумент функциональной панели должен быть константной ссылкой, а не просто ссылкой?
Edit1: я знаю, что это ссылка, чтобы избежать копирования накладных расходов. и const только для чтения. Но здесь я должен сделать это ссылкой на const, иначе, если я удалю «const», g ++ выдаст мне ошибку.
Edit2: я предполагаю, что возвращаемый объект foo () является временным объектом, и ему не разрешено изменять значение временного объекта?