Ver*_*tas 2 c++ scope pass-by-reference object-lifetime
我知道我们不能通过引用返回一个局部变量,因为它会超出范围.虽然我在返回传递的引用时有点困惑.例如,以下示例是合法的还是会导致未定义的行为?
classobject &function(classobject &obj) {
return obj;
}
Run Code Online (Sandbox Code Playgroud)
这绝对没问题,实际上非常常见的是如何实现非成员运算符<<等等,以允许您链接运算符.
要考虑的关键是对象生命周期,并且如您所知,对象通过引用传入,它必须比函数调用更长.这样可以安全地返回相同的引用.