class obj {
};
obj func() {
return obj();
}
int main() {
obj& o = func(); // possible?
}
按值返回对象的函数的返回值的范围是什么?换句话说,在调用此函数的范围内,是否可以引用值对象返回的值?
是的,您可以将引用绑定到函数的返回值。这会将返回的对象的生存期延长到引用的生存期(如果是全局或局部函数),或者延长到当前函数的末尾(如果引用是数据成员)。
但是,您不能将临时(prvalue)绑定到非const
左值引用。就像这样:
obj& o = func(); // illegal, because non-const lvalue ref
const obj& o = func(); // fine, lifetime extended
obj&& o = func(); // fine, lifetime extended
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句