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