[問題] AfxBeginThread
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
→
10/06 10:21, , 1F
10/06 10:21, 1F
推
10/06 12:08, , 2F
10/06 12:08, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章