Вернуть переданную ссылку на объект

Я знаю, что мы не можем вернуть локальную переменную по ссылке, так как она вышла бы из области видимости. Я немного смущен, когда дело доходит до возвращения пропущенных ссылок, хотя. Например, является ли приведенный ниже пример законным или это приведет к неопределенному поведению?

classobject &function(classobject &obj) {
return obj;
}

2

Решение

Это абсолютно нормально, и на самом деле это очень часто, как оператор, не являющийся членом<< и тому подобное, чтобы позволить вам связать оператора.

Главное, о чем нужно подумать, это время жизни объекта, и, как вы знаете, объект передается по ссылке, он должен пережить вызов функции. Это позволяет безопасно возвращать ту же ссылку.

6

Другие решения

Это законно и используется, например, cout<< (хотя аргумент *this вместо явного аргумента функции). Возвращает ссылку на cout, позволяя cout<<"a"<<"b";,

0

По вопросам рекламы [email protected]