[問題] AfxBeginThread

看板C_and_CPP (C/C++)作者時間16年前 (2009/10/06 09:53), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
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
文章代碼(AID): #1AogCtM7 (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
文章代碼(AID): #1AogCtM7 (C_and_CPP)