提示"cannot instantiate abstract class due to following members"?

来源:互联网 发布:淘宝宝贝自定义属性 编辑:程序博客网 时间:2024/05/16 10:15

提示"cannot instantiate abstract class due to following members"?
    解决方法:从基类派生来的类,其中有需要子类实现的纯虚函数必须实现,如果用不着就在实现的时候写为空的
如 TaskBase.h中的类为基类

class CTaskBase{    private: /*1.需子类实现的纯虚函数*/ virtual bool OnTaskStart() = 0; virtual void OnTaskStop() = 0; virtual void OnDealReportTask(CVorxProto* pTask) = 0; virtual void OnDealQueryTask(CVorxProto* pTask) = 0; virtual void OnDealHeartReturn(CVorxProto* pTask) = 0; virtual void OnDealHeartQuery(CVorxProto* pTask) = 0;}当派生出一个类class CTaskDeal : public CTaskBase{ virtual bool OnTaskStart() = 0; virtual void OnTaskStop() = 0; virtual void OnDealReportTask(CVorxProto* pTask) = 0; virtual void OnDealQueryTask(CVorxProto* pTask) = 0; virtual void OnDealHeartReturn(CVorxProto* pTask) = 0; virtual void OnDealHeartQuery(CVorxProto* pTask) = 0;}这些个函数在CTaskDeal中的.cpp文件必须要实现即bool CMatrixAgent::OnTaskStart(){ m_thread.StartThread(); return true;}void CMatrixAgent::OnTaskStop(){ }void CMatrixAgent::OnDealReportTask(CVorxProto* pTask){ }void CMatrixAgent::OnDealQueryTask(CVorxProto* pTask){}void CMatrixAgent::OnDealHeartReturn(CVorxProto* pTask){}void CMatrixAgent::OnDealHeartQuery(CVorxProto* pTask){}


 

原创粉丝点击