このようなクラスがあるとしましょう
class Level
{
public:
Level(std::string);
~Level();
private:
Bitmap* map;
}
そして、あなたがこれを持っていたクラスで
Level::Level(std::string)
{
map = new Bitmap(path);
}
電話してもらえますか?
Level::~Level()
{
delete map;
}
クラスが範囲外になるのではないかと心配していたので、マップを削除していません。それでは、メモリリークが発生しませんか。マップを削除するには、手動で呼び出す必要がありますか。プログラムのコンストラクターで delete を呼び出すとクラッシュします。
マップを削除する場所で、マップを破棄するというレベルにメソッドを追加できるように。しかし、デストラクタに削除を追加できないのはなぜだろうと思っていました。