私は基本的に汎用スプライトであるSpriteX
というクラスを持っています。私は_Drawables
というクラスを持っていて、メンバーはstd::vector<SpriteX*>
です。 main()
では、作成したすべてのスプライトを_Drawables
コンテナに挿入してからdrawAll()
メソッドを呼び出して、std::vector
のすべてのSpriteX
オブジェクトを描画することができます。このクラスへのポインタをクラスから削除しますか?
各SpriteX
オブジェクトは、自身へのポインタがどのインデックスにあるかを知っており、デストラクタではポインタをNULL
に設定します。しかし、ポインタを完全に破棄したいのですが、NULL
に設定するだけではありません。しかし、ポインタを安全に削除していますか?デストラクタでdelete
を使用し、そのデストラクタを呼び出すと、ループが発生しますか?メモリを解放する方法はありますか?
サイドノート: '_Drawables'という名前はC++では不正です。そのクラスの名前を変更する必要があります。アンダースコア+大文字で始まる名前は実装用に予約されています。 – Philipp