建立一个基于对话框的MFC应用程序,然后在该程序中用new class建立一个新类,该新类中声明了一个原主对话框类的对象,又在原主对话框中声明一个该新类的对象,这样编译连接时就会提示错误,说对话框类和新类没有定义。请问如何能够实现这种定义方法。
(注:我已经在两个头文件include了对方的原文件)

解决方案 »

  1.   

    >>>原主对话框类的对象,又在原主对话框中声明一个该新类的对象use pointers instead, create objects on the heap, don't forget to delete themclass CYourDialog;class CYourClass
    {
    public:
      CYourDialog* pDlg;
    ....
    }class  CYourClass;class CYourDialog ....
    {
    public:
      CYourClass* pYC;
    ....
    }
      

  2.   

    这样还是不行阿
    它仍会提示错误,
    我是用new general class来生成这个类的,是不是include文件的问题
      

  3.   

    我在主对话框类中include新类的头文件
    然后在新类的头文件中include主对话框类的头文件
    但我怀疑是不是两个不同类的定义中相互包含对方作变量会出问题
      

  4.   

    当然不行了,难道他没说syntax error : missing ';' before '*'?
    新类要用主对话框类的函数?不清楚,指教?
      

  5.   

    他确实提示如此的错误,
    新类要用主对话框类的函数,是这样的
    比如说主对话框类叫CDlg,该类中有一个Accept函数,新类叫myclass,myclass中什么了CDlg *pDlg后就能用pDlg->Accept()调用主对话框类的Accept函数
      

  6.   

    要调用主对话框类的Accept函数,只要在myclass中用主对话框的指针调用,
    如m_wndDlg->Accept();当然要先获得主对话框的指针m_wndDlg;或则你把myclass定义成对话框的友元类啊.
      

  7.   

    我在主对话框类中include新类的头文件
    然后在新类的头文件中include主对话框类的头文件
    但我怀疑是不是两个不同类的定义中相互包含对方作变量会出问题==================================头文件好像应该不能互相 include 吧,
    改成我在主对话框类中include新类的头文件,新类申明 class CYourDialog;,然后试试看