有两个类,一个是 功能类,普通C++类, 另一个是界面类,MFC类,继承自CPropertyPage
在两个类中都有用到对方,可是当我在两个头文件中分别包含另一个类时,出现编译错误.
请问怎么解决?

解决方案 »

  1.   

    一个包含头文件
    另一个声明类就行了。如:
    //a.h
    #include "b.h"//b.h
    class a;
    class b
    {
    ...
    };
      

  2.   

    在PropertyPage内#include "CC.H"
    在CC.H内CC类定义的前面加了.class PropertyPage;错误如下:
    e:\MrCaoWorkSpace\SMSTestCaseGenerator\TypeDeliverPage.h(20): error C2057: expected constant expression
    e:\MrCaoWorkSpace\SMSTestCaseGenerator\TypeDeliverPage.h(20): error C2065: 'IDD_DIALOG_DELIVER' : undeclared identifier错误是出在界面类的那句:
    // Dialog Data
    enum { IDD = IDD_DIALOG_DELIVER };
      

  3.   

    如果照ouyh12345的方法还不行,由说明你设计类的时候有个小问题:
    比如A、B两个类,
    A中有一个成员是B类实例,B中有个成员是A类实例。
    那么,在下面这样的代码中:
    //b.h
    class a;
    class b
    {
    private:
      a m_a;//出错
    };
    将出现错误,因为b类无法知道它的成员要多大空间,
    改用指针可以解决这个问题。