gpt4 book ai didi

C++ const 左值引用

转载 作者:可可西里 更新时间:2023-11-01 16:39:03 24 4
gpt4 key购买 nike

假设我有:

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

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

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

编辑:来自评论的插件问题:如果左值是 const A&,是否可以将 A& 从 GenerateA() 返回到本地 A?

谢谢!

最佳答案

如果 A 不可复制,则函数 A GenerateA() 无效,因为按值返回需要创建拷贝。

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

关于C++ const 左值引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com