【发布时间】:2009-06-26 16:12:59
【问题描述】:
void FileManager::CloseFile(File * const file)
{
for (int i = 0; i < MAX_OPEN_FILES; ++i)
{
if ((_openFiles[i] == file) == true)
{
_openFiles[i] == NULL;
}
}
...
_openFiles 是 FileManager 的私有成员,只是一个 File * 的数组
当在立即窗口中执行完全相同的测试时,我得到的结果是 1!?!
EDIT == true 纯粹是作为健全性检查添加的!
【问题讨论】:
-
如果我可以提供一个建议:我认为您确实应该在这里使用更高级的数据结构。某种散列可以防止每次调用该函数时都需要进行搜索,我只能想象在诸如此类的“管理器”类中还有其他此类函数。在许多情况下,管理器类也是一种代码味道......
-
该类还处于起步阶段,并且散列在列表中!但是感谢您的建议,因为它证实了我的意见..