假设我有:
- 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(使用前将#替换为@)