関数を作成したプロジェクト仕様があります(変更できません)
const mat4& GetView() const;
mat4オブジェクトは、次の関数で作成されます。
mat4* a = new mat4();
mat4 &ret = *a;
return ret;
そして後でそれを削除したいと思います。しかし、GetViewメソッドを終了したら、どうすればそれを実行できますか?
ありがとう。
アドレスを取る:
const mat4 & x = GetView();
delete &x;
(オーバーロードされていないと仮定してoperator&
います。オーバーロードされている場合は、もう少し複雑なことをする必要があります。)
ここには、合理的な選択肢が 3 つしかないのではないかと強く思います。
GetView
戻ってはいけませんconst mat4&
GetView
、新しく作成されたオブジェクトではなく、既存のオブジェクトへの参照を返すことになっていますもちろん、最後の点については、プッシュを開始する前に、できるだけ多くの論理的根拠を収集する必要があります。