【发布时间】:2011-05-07 16:15:26
【问题描述】:
假设我有:
- A 类不可复制
- B 类的成员为 const A& a(并在其构造函数中采用 A 并将其设置在其初始化列表中)
- 一个函数
A GenerateA();
这是否意味着它应该是有效的: B(生成A()) ?
即,const ref 是否意味着 generateA() 返回的 A 的副本没有完成?这是否意味着只要 B 存在,返回的临时范围就会扩展?
编辑:来自 cmets 的附加问题: 如果左值是 const A&,是否可以将 GenerateA() 中的 A& 返回到本地 A?
谢谢!
【问题讨论】:
-
您不能持有对生命周期已结束的值的引用;这正是您返回对局部变量的引用时发生的情况。
-
@GMan:这本质上是我的问题的意图,即使用 const 引用是否会改变所述对象的生命周期。
标签: c++ reference constants noncopyable