あなたは以下を持っています:
Person& getPersonByName(string name);
どのような状況で、getPersonByNameからの戻り者がメソッドが終了するとすぐに破棄され、呼び出し元のメソッドが破棄されたデータを処理することを心配する必要がありますか?
ありがとうございました
あなたは以下を持っています:
Person& getPersonByName(string name);
どのような状況で、getPersonByNameからの戻り者がメソッドが終了するとすぐに破棄され、呼び出し元のメソッドが破棄されたデータを処理することを心配する必要がありますか?
ありがとうございました
あなたがすべき。
dangling reference
たとえば、次のとおりです。
Person &getPerson()
{
Person p;
return p;
} //p is destroyed here
しかし、これは大丈夫です:
Person &getPerson()
{
static Person p;
return p;
}
reference
aを an の内部変数に返すこともできます。これは、が破棄さobject
れるまで使用しても問題ありません。object
class Foo
{
public:
int & getA() {return a;}
private:
int a;
};
Person
関数が戻ったときに破棄されない場合。例としては