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

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

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Dxライブラリにてインスタンスの有無を識別したい

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

#3

by あいす » 7年前

解決できました

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

#2

by あいす » 7年前

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

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

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

ページトップ