Dxライブラリにてインスタンスの有無を識別したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あいす

Dxライブラリにてインスタンスの有無を識別したい

#1

投稿記事 by あいす » 7年前

ひとまずゲームが完成したので、細かくデータを場面場面でロードするようにしたいのですが、newにて確保したクラスのインスタンスが削除できなくて困っています。

たとえば、現在戦闘シーンを処理してるクラスAのインスタンスを削除し、イベントシーンを処理するクラスBをインスタンスし、Bのメンバ関数cを実行したい場合
(battleは戦闘シーンかどうかのフラグです)

if(battle==true){
delete a;
b=new B;
battle=false;
}
if(battle==false){
b->c();
}

こうすると、クラスAのインスタンスが残って使用中メモリが減ってくれません。

そこで、while文の中で実行しているためメモリ削除の前にフラグが変わってしまって削除が完了していないのでは?と思ったので、
タイトルにあるようにクラスのインスタンスがあるかどうかが識別できれば安全に削除してから処理を進められると考えました。
どのようにすればよいのでしょうか?

あいす

Re: Dxライブラリにてインスタンスの有無を識別したい

#2

投稿記事 by あいす » 7年前

考えてみて思ったのですが、クラスのコンストラクタにて確保した画像や音声ファイルのメモリ自体はdeleteでは消えないため、単純にそのメモリ分が残るといった見解でよろしいのでしょうか?

それともう一つ、delete後のインスタンスのアドレスがまったく変わらないのですが、これはどういうことなのでしょうか?


返信

“C言語何でも質問掲示板” へ戻る