我知道临时不能绑定到非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)