當函式過載遇上函式指標

2021-07-16 07:33:00 字數 844 閱讀 1036

#include

#include

using

namespace

std;

void func()

void func(int a)

void func(int a, int b)

void func(string a, string b)

typedef

void (fp1)(int, int);

typedef

void(*fp2)(int, int);

int main()

輸出結果:

函式指標有三種宣告方式:

1、第一種即上面fp1的宣告方式,定義乙個函式型別

typedef

void (fp1)(int, int);

2、第二種即上面fp2的宣告方式,定義乙個函式指標型別

typedef

void(*fp2)(int, int);

3、第三種即上面fp3的宣告方式,定義乙個函式指標變數

void(*fp3)(int, int) = func;
一旦函式指標宣告時確定了引數型別,那麼就是嚴格型別匹配的,當然因為這裡沒有double或者float型別的函式過載,如果引數是double或者float型別,同樣可以通過上面定義的函式指標進行函式呼叫,這個就跟函式過載的型別匹配規則是一致的了。

函式過載遇上函式指標

函式過載遇上函式指標 將過載函式名賦值為函式指標時 1.根據過載規則挑選與函式指標列表一致的候選者 2.嚴格匹配候選者的函式型別與函式指標的函式型別 看下面的 include int func int x int func int x,int y int func int x,int y,int z...

當函式模版遇上函式過載

demo 1 include using namespace std 讓 型別引數化 方便程式設計師進行編碼 泛型程式設計 template 告訴c 編譯器 我要開始泛型程式設計了 看到t,不要隨便報錯 template void myswap t a,t b void myswap int a,c...

當函式模版遇上函式過載

demo 1 include using namespace std 讓 型別引數化 方便程式猿進行編碼 泛型程式設計 template 告訴c 編譯器 我要開始泛型程式設計了 看到t,不要隨便報錯 template void myswap t a,t b void myswap int a,cha...