c++ - 返回传递给对象的引用

标签 c++ scope pass-by-reference object-lifetime

我知道我们不能通过引用返回局部变量,因为它会超出范围。不过,在返回传递的引用时我有点困惑。例如,下面的示例是合法的还是会导致未定义的行为?

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

最佳答案

这绝对没问题,事实上,非成员运算符<< 等通常是这样实现的,以允许您链接运算符。

要考虑的关键是对象的生命周期,正如您所知,对象是通过引用传入的,它必须比函数调用长寿。这样可以安全地返回相同的引用。

关于c++ - 返回传递给对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20554646/

相关文章:

c++ - 在 C++ 中,我可以拥有一个仅在特定条件下具有某些功能的类吗?

python - Python 中如何解析对变量的引用

function - 什么是 PowerShell ScriptBlock

c++ - 用两个 vector 编写结构模板

c++ - C++中的无序集交集

c++ - 将节点添加到双向链表时遇到问题

javascript - 我怎样才能*解包*一个对象到一个函数的范围内?

javascript - 在 Javascript 中交换整个数组

c++ - 当通过引用传递成为强制通过地址/指针传递时

Java 显然是按值传递,但需要一些说明