参考初始化内构造的对象

时间:2014-05-30 21:43:32

标签: c++ reference

希望一个简单的问题:给出一个类

class Foo {
 // some private data members
 public : 
    Foo(int) {...};
} 

如果在引用初始化期间构造实例会发生什么?

const Foo &f(Foo(1));

f现在是否引用死对象 - 如果没有,当f超出范围时,对象是否会被正确销毁?

并且,如果我们使引用初始化使用表达式,会发生什么变化吗?

const Foo &f( condition? Foo(1) : Foo(42));

1 个答案:

答案 0 :(得分:3)

如果使用类型的prvalue初始化右值引用或const引用,则临时对象的生命周期将扩展到引用的生命周期。所以不用担心悬挂参考文献。