相关疑难解决方法(0)

为什么临时的寿命不会延长到封闭物体的寿命?

我知道临时不能绑定到非const引用,但它可以绑定到const引用.那是,

 A & x = A(); //error
 const A & y = A(); //ok
Run Code Online (Sandbox Code Playgroud)

我也知道在第二种情况(上图)中,临时创建A()的生命周期延长到const引用的生命周期(即y).

但我的问题是:

可以将绑定到临时的const引用进一步绑定到另一个const引用,将临时的生命周期延长到第二个对象的生命周期吗?

我尝试过这个并没有用.我不太明白这一点.我写了这段代码:

struct A
{
   A()  { std::cout << " A()" << std::endl; }
   ~A() { std::cout << "~A()" << std::endl; }
};

struct B
{
   const A & a;
   B(const A & a) : a(a) { std::cout << " B()" << std::endl; }
   ~B() { std::cout << "~B()" << std::endl; }
};

int …
Run Code Online (Sandbox Code Playgroud)

c++ temporary

31
推荐指数
3
解决办法
3529
查看次数

标签 统计

c++ ×1

temporary ×1