希望一个简单的问题:给出一个类
class Foo {
// some private data members
public :
Foo(int) {...};
}
如果在引用初始化期间构造实例会发生什么?
const Foo &f(Foo(1));
f
现在是否引用死对象 - 如果没有,当f
超出范围时,对象是否会被正确销毁?
并且,如果我们使引用初始化使用表达式,会发生什么变化吗?
const Foo &f( condition? Foo(1) : Foo(42));
答案 0 :(得分:3)
如果使用类型的prvalue初始化右值引用或const引用,则临时对象的生命周期将扩展到引用的生命周期。所以不用担心悬挂参考文献。