【发布时间】:2010-10-12 18:48:22
【问题描述】:
这样的 fnc 会延长返回对象的生命周期吗?如果没有,有没有办法做到这一点?
const int& f () //<<----Here you see, I'm returning by ref to const int
{
return 1;
}
【问题讨论】:
标签: c++
这样的 fnc 会延长返回对象的生命周期吗?如果没有,有没有办法做到这一点?
const int& f () //<<----Here you see, I'm returning by ref to const int
{
return 1;
}
【问题讨论】:
标签: c++
不,它不会延长对象的生命周期。
您无法延长临时对象的生命周期(创建一个临时对象以绑定到引用),但是,您可以这样做
int f() { return 1; }
:-)
干杯,
--阿尔夫
【讨论】:
int(实际上它还没有时间被乱码)。然而,如果你用析构函数类型的对象尝试这个技巧,你可能会大吃一惊……
我不认为这会编译(使用常量),但如果你编译了类似的东西,它会因未定义的行为而导致运行时失败。
它不会延长任何生命周期,因此您将 ref 返回给不再存在的 var/const。
【讨论】: