一般函式指標的用法與類成員的函式指標

2021-06-23 06:14:29 字數 983 閱讀 2524

需求:從乙個檔案中讀函式名稱列表,呼叫相應的函式。

就用函式指標去實現。

在程式中構建乙個map,mapmap_method;

將要讀入的字串與要呼叫的函式指標,構建乙個map。

呼叫時map_method[func_name](1,1); 可以呼叫函式。

函式指標是通過指向函式的指標間接呼叫函式。函式指標可以實現對引數型別、引數順序、返回值都相同的函式進行封裝,是多型的一種實現方式。由於類的非靜態成員函式中有乙個**的this指標,因此,類的成員函式的指標和一般函式的指標的表現形式不一樣。

1.一般函式指標

函式指標的宣告中就包括了函式的引數型別、順序和返回值,只能把相匹配的函式位址賦值給函式指標。為了封裝同型別的函式,可以把函式指標作為通用介面函式的引數,並通過函式指標來間接呼叫所封裝的函式。

下面是乙個指向函式的指標使用的例子

int max(int x, int y)

int main(void)

2、指向類的成員函式的指標

使用::*宣告乙個成員指標型別,或者定義乙個成員指標變數。使用.*或者->*呼叫類成員函式指標所指向的函式,這時必須繫結(binding)於成員指標所屬類的乙個例項的位址。例如:

struct x ;

int a;

};void (x::* pmf)(int); //乙個類成員函式指標變數pmf的定義

pmf = &x::f; //類成員函式指標變數pmf被賦值

x ins, *p;

p=&ins;

(ins.*pmf)(101); //對例項ins,呼叫成員函式指標變數pmf所指的函式

(p->*pmf)(102); //對p所指的例項,呼叫成員函式指標變數pmf所指的函式

一般函式指標和類的成員函式指標

函式指標是通過指向函式的指標間接呼叫函式。函式指標可以實現對引數型別 引數順序 返回值都相同的函式進行封裝,是多型的一種實現方式。由於類的非靜態成員函式中有乙個 的this指標,因此,類的成員函式的指標和一般函式的指標的表現形式不一樣。1 指向一般函式的指標 函式指標的宣告中就包括了函式的引數型別 ...

一般函式指標和類的成員函式指標

函式指標是通過指向函式的指標間接呼叫函式。函式指標可以實現對引數型別 引數順序 返回值都相同的函式進行封裝,是多型的一種實現方式。由於類的非靜態成員函式中有乙個 的this指標,因此,類的成員函式的指標和一般函式的指標的表現形式不一樣。1 指向一般函式的指標 函式指標的宣告中就包括了函式的引數型別 ...

一般函式指標和類的成員函式指標

函式指標是通過指向函式的指標間接呼叫函式。函式指標可以實現對引數型別 引數順序 返回值都相同的函式進行封裝,是多型的一種實現方式。由於類的非靜態成員函式中有乙個 的this指標,因此,類的成員函式的指標和一般函式的指標的表現形式不一樣。1 指向一般函式的指標 函式指標的宣告中就包括了函式的引數型別 ...