希望是一个简单的问题:给定一个类
class Foo {
// some private data members
public :
Foo(int) {...};
}
如果在引用初始化期间构造实例会发生什么?
const Foo &f(Foo(1));
f
现在是否引用死对象 - 如果不是,当 f
超出范围时该对象是否会被正确破坏?
如果我们使用表达式进行引用初始化,会有什么变化吗?
const Foo &f( condition? Foo(1) : Foo(42));
最佳答案
如果使用类类型的纯右值初始化右值引用或常量引用,则临时对象的生命周期将延长到引用的生命周期。所以不用担心悬空引用。
关于c++ - 在引用初始化中构造的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23963816/