close

 

設計函數覆載,若函數引數的資料型態中有參考型態,則必須格外小心

 

void count ( int x );

 

void count ( int& x );

 

則我們以下列敘述呼叫時:

 

int times = 10;

count( times );

 

compiler根本無法辨別應該使用哪一個函數

 

 

 

函數指標

 

 

利用一指向函數的指標,可以使的函數的呼叫更加有效率,而且也可以使的一函數作為另一函數的引數

 

double max ( int a, int b );

 

則欲宣告一個指向max函數的指標

 

double (*pf) ( int , int );

 

簽名和傳回值必須與max函數相同

 

如此程式中便可以將函數max的位址指定給函數指標變數

 

pf = max;

 

或直接在定義函數指標時指定函數位址

 

double (*pf) ( int , int )  =  max;

 

一般函數名稱可以視為函數的起始位址,當然可以用&

 

double (*pf) ( int , int )  =  &max;

 

***************************************************

 

 

 

double result  = (*pf) (3.14,1.22);

double result  = max (3.14,1.22);

 

函數名稱代表該函數記憶體中的起始位址,也屬於指標型態

也可以寫成這樣  double result  = pf (3.14,1.22);

 

 

 

函數指標的好處

 

 

可以將簽名和傳回值型態相同的函數以陣列的方式組合在一起,變成指標陣列

如此函數的呼叫將變的非常方便而有效率

 

 1..bmp

2..bmp 

3..bmp 

4..bmp 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 LawlietMoon 的頭像
    LawlietMoon

    iPaSsioN sTuDio新世界:雜草魂 生命力

    LawlietMoon 發表在 痞客邦 留言(0) 人氣()