MFC头文件包含有什么规则?该如何解决

MFC头文件包含有什么规则?
写了一个小程序,头文件包含有些乱了,老师说是逻辑错了!
不知道有什么规则?

------解决方案--------------------
不能重复包含,也就是#include "a "与#include "b "时,b中不能再#include "a "了,不知道是不是你出的问题
------解决方案--------------------
在另一个文件里声明一下类
class A;
------解决方案--------------------
如果非要互相包含(都成为对方的数据成员)的话
那就用指针吧,而不要用对象
这样,在头文件声明一下类名就好了。在.cpp里包含头文件
比如:

//a.h
class B;
class A
{
public:
B * m_pB;
}
//a.cpp
#include "b.h "
............

B也一样就好了