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的陣列!?!這個簡單的指針相等測試如何失敗?
編輯該==真正被添加純粹作爲理智檢查!
如果我可以提供一個建議:我認爲你應該在這裏使用更高級的數據結構。每次調用這個函數時,某種類型的散列會阻止搜索的需要,我只能想象在類似這樣的「管理器」類中還有其他這樣的函數。經理類在許多情況下也是代碼味道的東西... – rmeador 2009-06-26 16:42:42
該類處於起步階段,散列在列表中!但謝謝你的建議,因爲它證實了我的oppinions .. – 2009-07-02 09:59:45