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

本文详细阐述了在C++中继承抽象基类时遇到编译错误的原因,并提供了解决方法。重点在于理解抽象基类与接口的区别,以及如何正确地在派生类中实现抽象基类中的所有纯虚函数。通过实例演示了如何修改派生类以避免编译错误,并链接了相关资源供进一步学习。
摘要由CSDN通过智能技术生成

继承自CControlBar的新类,编译出错error C2259: 'CTestDockBar' : cannot instantiate abstract class due to following members:

 

错误原因:

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

解决方法:

 //实现父类的抽象方法
 virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);

 

void CTestDockBar::OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler)

 CWnd::UpdateDialogControls(pTarget, bDisableIfNoHndler);
}

 

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

附录:

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观念和抽象类和接口)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值