一般に、この議論はローカル関数変数のみです。
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