兩個以上的函式,具有相同的函式名,但是形參的個數或者型別不同,編譯器根據實參和形參的型別及個數的最佳匹配,自動確定呼叫哪乙個函式,這就是函式的過載。
過載函式的形參定義時注意事項:
個數不同型別不同不以形參名來區分函式不以返回值來區分函式
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...