vc6下建了一个继承了两个类的新类,class CMainFrame : public CFrameWnd, public Class1{}
接下来编译时提示错误:'CMainFrame' : cannot instantiate abstract class due to following members:。如果继承一个类CFrameWnd,则IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)没问题;继承两个类的话,IMPLEMENT_DYNCREATE和MESSAGE_MAP就不行了。请教,这继承两个类甚至多个类,该如何调整IMPLEMENT_DYNCREATE和MESSAGE_MAP呢?

解决方案 »

  1.   

    你的错误是说CMainFrame类不能创建实例(对象),应为你继承于一个抽象类。
      

  2.   

    吧public Class1{} 去除,不能使用抽象类,否则不能实例化。CFrameWnd继承多个类的话,其中一个是CFrameWnd,其他的父类不是窗口类,且其中函数(变量)不能同CFrameWnd类的函数(变量)声明相同。
      

  3.   

    在我的程序里用到了this指针,m_Camera->AddObserver(this);,如果把public Class1去除的话,编译就提示:error C2664: 'AddObserver' : cannot convert parameter 1 from 'class CMainFrame *const ' to 'class class1 *'。所以不能去除public Class1,这该如何解决啊?