类的继承引起的一个错误:error C2259 cannot instantiate abstract class due to following members

错误描述:

e:/mywork/1.7sp1/ginfo/client/src/skdesigner/dsgquerydlg.h(295) : error C2259: 'CDsgFormatDataMgrDlg' : cannot     instantiate abstract class due to following members:
e:/mywork/1.7sp1/ginfo/client/src/skdesigner/dsgformatdatamgrdlg.h(14) : see declaration of 'CDsgFormatDataMgrDlg'

 

错误原因:

一个实现类继承了一个抽象基类,但是却没有把抽象基类中的方法全部实现。

 

可以类似的实现:

virtual void EnableControl(PSKOPEROBJECT lpoo, BOOL bEnable) {}//这些是用不到的抽象基类中的方法,也要实现

 

代码实例:

 

class CDsgFormatDataMgrDlg : public CDialogImpl<CDsgFormatDataMgrDlg>,
                                                  public ISkBusinessEngineSink  //抽象基类
{
public:
    enum {IDD = IDD_FORMATDATAMGR_DLG};

    CDsgFormatDataMgrDlg();
    virtual ~CDsgFormatDataMgrDlg();
    virtual BOOL PreTranslateMessage(MSG* pMsg);
    ...

 

class ISkBusinessEngineSink
{
public:
    virtual void HandleOneCSObject(LPCTSTR lpszName) {}
    virtual BOOL HandleUpdateCalendarResult(int nType, PCALENDAREVENT lpce,
        DWORD dwClientTmpId, BOOL bRet, DWORD dwErrorCode) { return FALSE; }
    virtual BOOL HandleUpdateDesktopResult(int nType, PDESKTOPITEM lpdi,
        DWORD dwClientTmpId, BOOL bRet, DWORD dwErrorCode) = 0;

    virtual void HandleHotBUList(PHOTBU lphb, int nCount) {}
    virtual void OnDBFuncReady(BOOL bReady) = 0;
    virtual void OnDBViewReady(BOOL bReady) = 0;
    virtual void OnSNReady(BOOL bReady) = 0;
    virtual void OnTableReady(BOOL bReady) = 0;

    ...

}

 

抽象基类中的方法必须完全实现...

附录:

http://www.cnblogs.com/shenfx318/archive/2007/01/25/630760.html(抽象基类和接口的选择和区别)

http://www.cnblogs.com/TravelingLight/archive/2010/06/02/1750073.html(抽象基类的一些问题)

http://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Companion/cxx_crib/interfaces.html

(OO观念和抽象类和接口)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值