您的位置:首页 > 产品设计 > UI/UE

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

2012-06-19 08:56 603 查看
提示"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)
{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐