推 kkroy:是的,這就是我要的! 很謝謝你! 09/02 23:10
推 kkroy:不過我有個問題,為什麼要用typedef void(A::*PTR)(int,int) 09/02 23:31
→ kkroy:可以在void XD( void (*qq)(int,int) ){ (this->*qq)(5,6);} 09/02 23:33
→ kkroy:這樣會錯~不過我不知道錯在哪.... 09/02 23:34
→ tinlans:重點是 A::* 這個東西要寫出來。 09/02 23:38
→ tinlans:member function pointer 跟一般 fp 不是一樣的東西。 09/02 23:39
→ tinlans:文末的問題,是 this ->* P 這樣拆開來看,->* 是運算子。 09/02 23:42
→ tinlans:比較常見的參數列是 (A *obj, PTR P) 或 (A &obj, PTR P) 09/02 23:43
→ tinlans:然後用 obj.*P 或 obj->*P 去 invoke。 09/02 23:44
→ QQ29:那這樣要T.DO(&T);這樣寫嚕? 09/02 23:50
推 kkroy:那如果不用typedef void(A::*PTR)(int,int);該怎改寫? 09/02 23:58
→ QQ29:t大有說了 A::* 你*qq要改成A::*qq 09/03 00:15
→ kkroy:是的,我等會試試看,我想我需要消化一下。 09/03 00:27
推 kkroy:真的耶! 如果不用typedef void (A::*PTR)(int,int); 09/03 00:29
→ kkroy:將void XD( PTR P ){ (this->*P)(5,6);} 09/03 00:30
→ kkroy:改成 void XD( void (A::*qq)(int,int) ){ (this->*qq)(5,6) 09/03 00:30
→ kkroy:效果一樣! 為什麼要A::*呢? 09/03 00:31
→ kkroy:定義中又為什麼要 this->* 呢? 09/03 00:31