如何取得成員函數指標位址 |
缺席
|
luckfox0927
一般會員 發表:13 回覆:7 積分:4 註冊:2002-12-29 發送簡訊給我 |
typedef (void )(*FUN)(void);
class CCTI { public: BOOL fun1(); }; void CCTI::fun1() { return; } void main() { FUN *f2; CCTI *cti; f2=fun2; printf("%d",f2); cti=new CCTI; //如何取得fun1的函數位址 } BOOL fun2() { return; } 我可以利用 FUN *f2; f2=fun2; 印出fun2的函數位址,那我如果要取得fun1的函數位址要如何做呢? |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
blackart
一般會員 發表:6 回覆:14 積分:4 註冊:2004-03-26 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
fun1是member function,函式的type和FUN是完全不同的。
不能直接assign,就算用reinterpret_case轉了也不能正確的呼叫。 正確的宣告和使用方法在,以下的網址有相關的介紹 http://www.parashift.com/c -faq-lite/pointers-to-members.html 至於MethodAddress,是VCL內部的架構使用的,和C member function完全沒關係。 |
jcjroc
高階會員 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |