通常,此讨论仅取决于局部函数变量:
void foo (const int &i)
{
// use i till foo() ends
}
foo(3);
但是,这条规则是否class
也适用于会员?
struct A {
const int &a;
A () : a(3) {} // version 1
A (const int &i) : a(i) {} // version 2
};
现在A
用作,
{
return ()? new A : new A(3) : new A(some_local_variable);
}
在所有 3 ly 分配的生命周期中,内容是否会 保持a
不变? new
A