void FileManager::CloseFile(File * const file)
{
for (int i = 0; i < MAX_OPEN_FILES; ++i)
{
if ((_openFiles[i] == file) == true)
{
_openFiles[i] == NULL;
}
}
...
_openFilesまったく同じテストをイミディエイトウィンドウで実行されたとき、私は、1の結果を得るための*
FileManagerののプライベートなメンバーであり、ファイルの単なる配列であります!?!この単純なポインタの等価性テストはどうすれば失敗するでしょうか?
EDIT純正チェックとして== trueが追加されました!あなたは
_openFiles[i] == NULL;
を持って
もし私が提案してくれるなら、あなたは本当により高度なデータ構造をここで使うべきだと思います。ある種のハッシュは、その関数が呼び出されるたびに検索の必要性を防ぎ、このような "マネージャ"クラスに他の関数があるとしか想像できません。マネージャクラスは、多くの場合、コードの匂いのようなものです... – rmeador
クラスは初期段階にあり、ハッシングはリストにあります!しかし、それは私の意見を確認するとして、提案に感謝.. –