ページ 11

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

Posted: 2017年9月30日(土) 01:23
by あいす
ひとまずゲームが完成したので、細かくデータを場面場面でロードするようにしたいのですが、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ライブラリにてインスタンスの有無を識別したい

Posted: 2017年9月30日(土) 01:41
by あいす
考えてみて思ったのですが、クラスのコンストラクタにて確保した画像や音声ファイルのメモリ自体はdeleteでは消えないため、単純にそのメモリ分が残るといった見解でよろしいのでしょうか?

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

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

Posted: 2017年9月30日(土) 13:55
by あいす
解決できました