私に正しい値を示しています戻るローカル変数は、まだ私は、このクラスを持っている
class A
{
private:
int a;
public:
int getA();
void setA(int a=2) ;
};
と機能:
A& func()
{
A a;
a.setA(777);
return a;
}
とメインで:
A a;
a=func();
cout<<a.getA();
と私"777"を得る。 しかし、関数内のローカルの "a"が削除されているので、私にはそれを得ることができないはずです。なぜ私は正しい価値を得るのですか?
この値を正確に「正しい」ものにするにはどうすればよいですか?あなたはその価値を得るべきではないことをあなたが知っていると言いませんでしたか?あなたがそれを得るべきでないなら、それはどのように正しいことができますか? –
[C++ローカル変数への参照の返却]の可能な複製(https://stackoverflow.com/questions/4643713/c-returning-reference-to-local-variable) – tofro
[ローカル変数のメモリを外部にアクセスできるかその範囲?](https://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside-its-scope) – moooeeeep