请教父类和子类问题

mznxbc123456 2015-12-01 03:50:52
本来3个线程是在一个类中开启的,现在改了代码,写了3个子类继承该父类,现在不清楚怎么在父类中启动线程了。请教
这是父类cm.h和cm.cpp中的内容
class CM {
public:
CManagerPing();
virtual ~CManagerPing();
private:
int m_bthreadrunning;//线程是否运行
pthread_t m_threadid;
pthread_t m_threadidex;
public:
void StartWorkThread();//启动工作线程
void StopWorkThread();//停止工作线程

/*void RunWorkThread();// 运行工作线程(本来是在父类中的,现在把它移到子类中了)
void WorkFunction(int m_CheckExPing);//工作函数
};

void CM::StartWorkThread(){
m_bthreadrunning=1;
pthread_create(&m_threadid,NULL,ThreadForRun,this);
}
static void*ThreadForRun(void*arg){
CManagerPing*pManagerPing=(CManagerPing*)arg;
pManagerPing->RunWorkThread(); //这里这样写就肯定有问题了,不清楚这里该怎么改,肯定要调用子类中的RunWorkThread();
return arg;
}

接下来是子类
class FM:public CM {
private:
//普通PING有关变量
LOCALIPLIST m_u;
SETSTRINGIP m_t;//发送队列
char m_m[16];
public:
void RunWorkThread();//运行工作线程
void WorkFunction(int m_CheckExPing);//工作函数,是否特殊PING

在子类中void RunWorkThread();已经实现,现在就是想问如何在父类中调到这个函数
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouxiaofeng1021 2015-12-01
  • 打赏
  • 举报
回复
引用 2 楼 mznxbc123456 的回复:
[quote=引用 1 楼 fefe82 的回复:] 写成虚函数。 在父类里 virtual void RunWorkThread();
我刚刚查到这个 谢谢[/quote] 应该可以了吧 这个就是多态性
mznxbc123456 2015-12-01
  • 打赏
  • 举报
回复
引用 1 楼 fefe82 的回复:
写成虚函数。 在父类里 virtual void RunWorkThread();
我刚刚查到这个 谢谢
fefe82 2015-12-01
  • 打赏
  • 举报
回复
写成虚函数。 在父类里 virtual void RunWorkThread();

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧