請問有關Function Pointer的書 |
尚未結案
|
willchen
初階會員 發表:64 回覆:81 積分:29 註冊:2003-05-23 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
willchen 您好 修改之前寫過的程式供您參考一下!
接著您可以自行修改與做進一步的測試.希望對您有幫助!
typedef float (*fnPtr)(float , float); // 自定一個函式指標: // 傳入兩個float參數,並傳回float的結果! float add(float x, float y) { return ( x + y ); } float sub(float x, float y) { return ( x - y ); } float mul(float x, float y) { return ( x * y ); } float div(float x, float y) { return ( x / y ); } float myPow(float x, float y) { return ( pow (x, y) ); } void __fastcall TForm1::ComboBox1Change(TObject *Sender) { if ( ComboBox1->ItemIndex==-1 ) ComboBox1->ItemIndex = 0; } //--------------------------------------------------------------------------- fnPtr aryFn[] = {add, sub, mul, div, myPow}; void __fastcall TForm1::btnAnswerClick(TObject *Sender) { float x, y, result; fnPtr fn; if ( ComboBox1->ItemIndex==-1 ) ComboBox1->ItemIndex = 0; fn = aryFn[ComboBox1->ItemIndex]; // get the function user specified. x = StrToFloat(edX->Text); // get the value x y = StrToFloat(edY->Text); // get the value y result = fn(x, y); // invoke function assigned dynamically edResult->Text = result; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { fnPtr fn; fn = add; ShowMessage(fn(3,4)); } //---------------------------------------------------------------------------Source codes: http://delphi.ktop.com.tw/loadfile.php?TOPICID=22816148&CC=510272 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
speed
一般會員 發表:13 回覆:17 積分:6 註冊:2003-04-30 發送簡訊給我 |
|
bugmans
高階會員 發表:95 回覆:322 積分:188 註冊:2003-04-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |