6

これに似た質問があることは知っていますが、私の質問に対する決定的な答えはありません...

これらはどちらもベストプラクティスの点で問題ありませんか? または、ポインタを返す必要がありますか? そうでない場合は、ベスト プラクティスに従うためにどのように変更する必要がありますか。

関数から新しいオブジェクトへの参照を返したい。私の実装は次のとおりです。

MyClass& doSomething() {
   return *(new MyClass());
}

MyClass a = doSomething();

MyClass の新しいインスタンスが new でヒープに割り当てられているため、これは問題ありませんか?

それとも、それを一定にする必要がありますか(いつこれを行うべきかどうかはよくわかりません)?

const MyClass& doSomething() {
    return *(new MyClass());
}

そして、これらの両方が間違っている場合、新しいオブジェクトへのポインターを返すだけでよいでしょうか?

ありがとう。

4

1 に答える 1