關於函式過載的理解

2021-10-06 21:35:30 字數 916 閱讀 5587

兩個以上的函式,具有相同的函式名,但是形參的個數或者型別不同,編譯器根據實參和形參的型別及個數的最佳匹配,自動確定呼叫哪乙個函式,這就是函式的過載。

過載函式的形參定義時注意事項:

個數不同型別不同不以形參名來區分函式不以返回值來區分函式

1,形參個數不同

int add(int x, int y);

int add(int x, int y, int z);

2,形參型別不同

int add(int x, int y);

int add(float x, float y);

3,不能以形參名來區分函式(形參只是可以看作虛擬的,是根據傳入值賦值的,不能分辨是哪乙個)

int add(int x, int y);

int add(int a, int b);

4,不能以返回值來區分函式(實參傳入時,與返回值無關,所以,不能以返回值確定)

int add(int x, int y);

float add(int x, int y);

求兩整數和兩實數的平方和

(此時可以運用過載,乙個定義為整型,乙個實數型)

#includeusing namespace std;

int add(int a, int b) //整型

double add(double a, double b) //實數型

int main()

關於函式過載的理解

什麼時候用過載?當定義的功能相同,但參與運算的未知內容不同,那麼,這時就定義乙個函式名稱以表示起功能,方便閱讀,而通過引數列表的不同來區分多個同名函式 class functionoverload public static void print99 int num system.out.print...

關於函式過載

什麼是函式過載 所謂函式過載是指同乙個函式名可以對應著多個函式的實現。例如,可以給函式名add 定義多個函式實現,如果乙個函式實現是求兩個整數之和,另乙個實現是求兩個實數之和,再乙個實現是求兩個複數之和。每種實現對應著乙個函式體,這些函式的名字相同,但函式的引數型別不同。為什麼要有過載 假如我們在c...

關於C 的函式過載

函式過載是c 的新特性,那到底為什麼c 可以而c卻不行呢?原因在於c 編譯器會執行名稱矯正或者叫做名稱修飾。例如,可能將myfunc int 轉換為 myfunc i,而將myfunc double 轉換為 myfunc d 實際上會轉換為帶有 及亂碼的複雜形式,這裡為了便於說明,採用這種形式 而c...