1.今天遇到一个问题,编译器总是在编译完后提示:C2145 C2501错误,说我在XXApp.h中定义的某个自定义类成员变量有问题,找不到这个自定义类的定义,代码示意如下:
//MyClass.h
...
CMyXXOjbect
{
public:
int m_nID;
}
//XXXApp.h
CXXXApp : public CWinApp
{
...
CMyXXOjbect m_oMyObject;
}
经过修改类名等无聊的重复工作后,编译错误依旧;
到网上搜索相关问题时,有一位高手说了一句:cpp中include某个头文件时,又在这个include的头文件中包含当前cpp的头文件.....
初一看有点绕,但仔细一想,就是不能死循环的包含头文件,那我的这个代码中有没有这个问题呢?
回忆一下,再细看代码,果然存在这样的问题:我在MyClass.h中include "XXXApp.h" 而在这个app头文件中通过另一个类间接的又包含了"MyClass.h".
去掉这种死循环式的头文件相互包含,编译通过!
阅读(1881) | 评论(0) | 转发(0) |