作者neigence ()
站内C_and_CPP
标题[问题] AfxBeginThread
时间Tue Oct 6 09:53:58 2009
AfxBeginThread 的参数主要有2个
1. 要执行的函数
2. 参数
如果要执行的函数不是一个 global function 的话
那他必定要是个 static method?? <-- 可是 我想要推翻这个情况
我想要利用多型来让他呼叫 我想要的method
我连function pointer都用上了 还是束手无策
class MyThread{
public:
void run( void (Runnable::*funPtr)() ){
AfxBeginThread(funPtr,NULL); <-----error1
}
}
class Runnable{
public:
virtual void run()=0;
}
class Tester : public Runnable{
public:
void run(){
//...do something
}
}
void main(){
Runnable* r = new Tester();
MyThread* thread = new MyThread();
thread->run(Tester::run) <-----error2
}
error1 : 无法将 void (__thiscall Runnable::*)() 转成AFX_THREADPROC
error2 : 无法将 void(__thiscall Tester::*)()转成
void (__thiscall Runnable::*)()
如果定static 方法 则就不用去管这些问题...>"< 可是 我就想用多型嘛..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.69.114.105
1F:→ kazuto:传入静态函数 在静态函数内部再做你想要的呼叫 10/06 10:21
2F:推 jaw109:那个..... 多型跟虚拟函数好像不一样 10/06 12:08