看过《深入浅出MFC》的高手指点下

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:16:09
CRuntimeClass* PASCAL CRuntimeClass::Load()
#0035 {
#0036 char szClassName[64];
#0037 CRuntimeClass* pClass;
#0038
#0039 // JJHOU : instead of Load from file, we Load from cin.
#0040 cout << "enter a class name... ";
#0041 cin >> szClassName;
#0042
#0043 for (pClass = pFirstClass; pClass != NULL; pClass = pClass->m_pNextClass)
#0044 {
#0045 if (strcmp(szClassName, pClass->m_lpszClassName) == 0)
#0046 return pClass;
#0047 }
请问在pClass = pClass->m_pNextClass中,结构体中已经是NUll了,那么他是怎么寻路找寻的呢?我翻了书,巡行了光盘中的代码,查看了代码,找不到是怎么弄的?
定义结构体CRuntimeClass的时候,它的最后一个变量CRuntimeClass* m_pNextClass填充的时候是NULL的,怎么有路可寻呢

你可以自己定义一个不是next等于null的啊
你把它看成一条链表,可能是代码为了方便,设置成只有一节,你可扩充.
即便只有一节,也会执行循环一次.
以上代码已经达到了演示效果,可能是和前面的代码衔接有点不好.