为了账号安全,请及时绑定邮箱和手机立即绑定

Const引用类成员是否延长了临时类的寿命?

Const引用类成员是否延长了临时类的寿命?

C++ C
慕姐8265434 2019-06-05 16:19:30
Const引用类成员是否延长了临时类的寿命?为何:#include <string>#include <iostream>using namespace std;class Sandbox{public:     Sandbox(const string& n) : member(n) {}     const string& member;};int main(){     Sandbox sandbox(string("four"));     cout << "The answer is: " << sandbox.member << endl;     return 0;}提供下列产出:答案是:而不是:答案是:四
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

本土化 const参考文献延长了使用寿命。

该标准在§8.5.3/5[dcl.init.ref]中指定了这种行为,这一节是关于引用声明的初始化器的。示例中的引用绑定到构造函数的参数n,并且当对象n一定会超出范围。

生存期扩展不是通过函数参数传递的。第12.2/5[类临时]:

第二个上下文是将引用绑定到临时上下文。绑定引用的临时对象或临时对象,即临时绑定的子对象的完整对象,除非如下所述,否则该引用的生存期将持续。一个临时绑定到构造函数的ctor初始化器中的引用成员(§12.6.2[class.base.init])一直持续到构造函数退出。与函数调用中的引用参数绑定的临时参数(§5.2.2[expr.all])一直保持到包含调用的完整表达式完成为止。


查看完整回答
反对 回复 2019-06-05
  • 3 回答
  • 0 关注
  • 593 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信