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

2021-09-06 09:40:49 字數 1350 閱讀 8528

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

1、指向一般函式的指標

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

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

#include 

/*指向函式的指標

*/typedef int (*pfun)(int, int);

int max(int a, int b)

int min(int a, int b)

/*通用介面函式,實現對其他函式的封裝

*/int result(pfun fun, int a, int b)

void main()

int min(int a, int b)

static

int sum(int a, int b)

/*類內部的介面函式,實現對類的非靜態成員函式的封裝

*/int result(pclassfun fun, int a, int b)

};/*

類外部的介面函式,實現對類的非靜態成員函式的封裝

*/int result(ca* pa, pclassfun fun, int a, int b)

/*類外部的介面函式,實現對類的靜態成員函式的封裝

*/int generalresult(pgeneralfun fun, int a, int b)

void main()

{ca ca;

int a = 3;

int b = 4;

cout<

test nonstatic member function pointer from member function:

"the maximum number between a and b is

"the minimum number between a and b is

"test nonstatic member function pointer from external function:

"the maximum number between a and b is

"the minimum number between a and b is

"test static member function pointer:

"the sum of a and b is

"

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

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

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

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

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

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