所謂函式過載是指同乙個函式名可以對應著多個函式的實現。例如,可以給函式名add()定義多個函式實現,該函式的功能是求和,即求兩個運算元的和。其中,乙個函式實現是求兩個int型數之和,另乙個實現是求兩個浮點型數之和,再乙個實現是求兩個複數的和。每種實現對應著乙個函式體,這些函式的名字相同,但是函式的引數的型別不同。這就是函式過載的概念。函式過載在類和物件的應用尤其重要。
函式過載要求編譯器能夠唯一地確定呼叫乙個函式時應執行哪個函式**,即採用哪個函式實現。確定函式實現時,要求從函式引數的個數和型別上來區分。這就是說,進行函式過載時,要求同名函式在引數個數上不同,或者引數型別上不同。否則,將無法實現過載。
引數型別上不同的過載函式
下面舉乙個在引數型別不同的過載函式的例子:
#include
int add(int, int);
double add(double, double);
void main()
int add(int x, int y)
double add(double a, double b)
該程式中,main()函式中呼叫相同名字add的兩個函式,前邊乙個add()函式對應的是兩個int型數求和的函式實現,而後邊乙個add()函式對應的是兩個double型數求和的函式實現。這便是函式的過載。
以上程式輸出結果為:
1515.5
引數個數上不同的過載函式
下面舉乙個在引數個數上不相同的過載函式的例子:
#include
int min(int a, int b);
int min(int a, int b, int c);
int min(int a, int b, int c, int d);
void main()
int min(int a, int b)
int min(int a, int b, int c)
int min(int a, int b, int c, int d)
該程式中出現了函式過載,函式名min對應有三個不同的實現,函式的區分依據引數個數不同,這裡的三個函式實現中,引數個數分別為2,3和4,在呼叫函式時根據實參的個數來選取不同的函式實現。
函式過載在類和物件應用比較多,尤其是在類的多型性中。在以後我們將碰到更多的在型別不同的函式過載,尤其是在結合類的繼承性和指標型別的不同,而這些都是我們以後用vc程式設計中經常要用到的。
C 語法之函式過載
所謂函式過載是指同乙個函式名可以對應著多個函式的實現。例如,可以給函式名add 定義多個函式實現,該函式的功能是求和,即求兩個運算元的和。其中,乙個函式實現是求兩個int型數之和,另乙個實現是求兩個浮點型數之和,再乙個實現是求兩個複數的和。每種實現對應著乙個函式體,這些函式的名字相同,但是函式的引數...
C 之 函式過載
函式的過載 函式的過載就是可以在乙個程式中使用同名的若干個函式。主要的限制是給定名稱的每個函式必須有不同的引數列表。也就是說,乙個引數列表中的引數型別與另乙個不同 不僅僅是引數名不同,實際上,如果滿足下列條件之一,兩個同名函式就是不同的 1.每個函式的引數個數不同 2.引數的個數相同,但至少有一對對...
C 之過載函式
c語言是實現不了過載的,只要兩個函式名稱相同,就會報錯,但是c 可以實現函式的過載,接下來我們看一下過載的規則。1.過載規則 1 函式名相同 2 引數的個數,型別,順序不同都可以構成過載 3 返回值型別不相同不可以構成過載 接下來我們看下具體的例子 void func int a void func...