C++ const 左值引用

2024-05-04

假设我有:

  • A 类不可复制
  • 类 B 具有 const A& a 作为成员(并在其构造函数中采用 A 并将其设置在其初始化列表中)
  • 一个函数A GenerateA();

这是否意味着执行以下操作应该有效: B(生成A()) ?

即,const ref 是否意味着generateA() 返回的A 的副本没有完成?这是否意味着只要 B 存在,返回的临时值的范围就会扩展?

编辑:评论中的附加问题: 如果左值是 const A&,是否可以从GenerateA() 返回 A& 到本地 A?

Thanks!


If A是不可复制的,那么该函数A GenerateA()无效,因为按值返回需要创建副本。

如果函数返回一个引用(即A &GenerateA())并且引用是本地创建的A对象,一旦函数退出,它就失效了。 C++ 没有任何形式的垃圾收集,因此只要对象正在使用,就没有办法“延长”它的生命周期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ const 左值引用 的相关文章

随机推荐