私は C++ の初心者で、ローカル変数を返す 3 つの方法を知っていますが、すべてに欠点があります。
Person& getPerson()
{
Person bob;
return bob;
}
明らかに良い考えではありません。
Person getPerson()
{
Person bob;
return bob;
}
null ポインターやダングリング参照の可能性はありませんが、パフォーマンスが低下します。
Person* getPerson()
{
return new Person();
}
null ポインターの可能性はありませんが、これは OO 設計の基本的な規則に違反していることは確かです。別のオブジェクトがこれを削除する必要がありますが、なぜ削除する必要があるのでしょうか? getPerson() メソッドの実装は、それとは何の関係もありません。
だから、私は代替手段を探しています。共有ポインターとスマート ポインター (標準およびブースト) について聞いたことがありますが、それらのいずれかがこの問題に対処するように設計されているかどうかはわかりません。あなたたちは何を提案しますか?