- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列の中身のdelete)
配列からのメモリ開放についての質問
このQ&Aのポイント
- 配列を使用した際に、メモリが開放されずに困っています。単純なメモリ確保と開放を行っているにもかかわらず、Deleteでメモリが解放されません。
- ポインタが怪しいと考えていますが、うまくメモリを解放する方法はありますか。
- 初歩的な質問ですが、配列の中身の削除について困っています。どうぞよろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
正しくdeleteするためには,deleteされるオブジェクトの静的な型 (今回ではBase) にvirtualの付いたデストラクタがないといけません。 そうでない場合,deleteされるオブジェクトの静的な型とnewした型 (今回ではSub) が異なる場合は未定義動作とされています。
お礼
なるほど、調べてみれば、スーパークラスのデストラクタには Virtualを付けておいた方が良いようですね。 そうしないとスーパークラスのデストラクタだけが実行されるようですね…。 ありがとうございました