我知道我们不能通过引用返回局部变量,因为它会超出范围。不过,在返回传递的引用时我有点困惑。例如,下面的示例是合法的还是会导致未定义的行为?
classobject &function(classobject &obj) {
return obj;
}
最佳答案
这绝对没问题,事实上,非成员运算符<< 等通常是这样实现的,以允许您链接运算符。
要考虑的关键是对象的生命周期,正如您所知,对象是通过引用传入的,它必须比函数调用长寿。这样可以安全地返回相同的引用。
关于c++ - 返回传递给对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20554646/