請教一個 function pointer 的問題 |
缺席
|
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
請參考以下的 code
//--------------------------------------------------------------------------- typedef int __fastcall (__closure *FuncTest)(int nX,int nY); //--------------------------------------------------------------------------- class TForm2 : public TForm { __published: // IDE-managed Components TButton *Button1; TMemo *Memo1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations FuncTest pFT[5]; __fastcall TForm2(TComponent* Owner); int __fastcall FormTest(int nX,int nY); }; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { int nI; for (nI = 0;nI < 5;nI ) pFT[nI] = NULL; } //--------------------------------------------------------------------------- void __fastcall TForm2::Button1Click(TObject *Sender) { AnsiString asTemp0; asTemp0.sprintf("[%Fp][%Fp][%Fp][%Fp][%Fp]",pFT[0],pFT[1],pFT[2],pFT[3],pFT[4]); Memo1->Lines->Add(asTemp0); pFT[0] = FormTest; asTemp0.sprintf("pFT[0] = [%Fp] FormTest = [%Fp]",pFT[0],&FormTest); Memo1->Lines->Add(asTemp0); asTemp0.sprintf("[%Fp][%Fp][%Fp][%Fp][%Fp]",pFT[0],pFT[1],pFT[2],pFT[3],pFT[4]); Memo1->Lines->Add(asTemp0); } //--------------------------------------------------------------------------- int __fastcall TForm2::FormTest(int nX,int nY) { return (nX nY); } //---------------------------------------------------------------------------我 run 出來的結果是 [00000000][00000000][00000000][00000000][00000000] pFT[0] = [00401D88] FormTest = [00904B44] [00401D88][00904B44][00000000][00000000][00000000] 請問為什麼會這樣. Jesse Chan
------
Jesse Chan |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |