c++ - 在引用初始化中构造的对象

标签 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));

最佳答案

如果使用类类型的纯右值初始化右值引用或常量引用,则临时对象的生命周期将延长到引用的生命周期。所以不用担心悬空引用。

关于c++ - 在引用初始化中构造的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23963816/

相关文章:

java - Java 是否保证对外部类的引用持久化?下面的踪迹怎么可能呢?

c++ - 斐波那契数列 C++ 显示一个/最大值

c++ - ""和 {} 初始化空字符串有什么区别?

reference - 如何为对结构的引用实现 Add 特性?

file - Java JAR 找不到文件

c++ - 对指针的 const 引用可以改变对象

perl - 在 Perl 中,您如何动态选择要用作回调的方法?

c++ - 如何为第三方遗留代码创建测试对象

c++ - 删除在另一个共享库中分配的指针

c++ - 为什么即使程序处于空闲状态(根据进程资源管理器),简单的 glfw 程序也会占用所有可用的 CPU?