函式指標與指標函式(C++工廠設計最喜歡用這個)
阿新 • • 發佈:2019-01-04
在看開源專案的時候,發現C++搞工廠設計都喜歡用這個。
下面來給出這方面的例子(大學裡面沒學過)
函式指標:
型別一:
程式碼如下:
#include <iostream>
using namespace std;
int max(int x, int y){
return (x > y ? x : y);
}
void main(){
int(*funPr)(int, int) = max;
cout << "the max is " << (*funPr)(1, 100) << endl;
system("pause");
}
其中int (*funPr)為函式指標,(int,int)為其引數,
來看區域性變數圖:
型別二:
使用typedef(這種用得最多,大佬都喜歡用這個來搞工廠)
程式碼如下:
#include <iostream>
using namespace std;
int max(int x, int y){
return (x > y ? x : y);
}
typedef int(*funPr)(int x, int y);
void main(){
funPr fun= max;
cout << "The max is " << fun(1, 100) << endl;
system("pause");
}
區域性變數如下:
執行截圖都為:
既然學了函式指標,那麼來科普下指標函式:
通過這個可以發現,這個玩意原來就是返回函式的指標
也就是經常寫的
int *pfun(int,int)
返回int*的函式