在c++中,如果需要定義幾個功能相似,而引數型別不同的函式,那麼這樣的幾個函式可以使用相同的函式名,這就是「函式過載」。
例如,求和函式,對應不同的引數型別,可以定義如下幾個過載函式:
sum(int a,int b) //不寫返回型別,返回整型
double sum(double a,double b)
float sum(floata,float b,float c)
以下語句中是不同的呼叫:
int x=sum(2,8);
float y=sum(5.6,11.1);
float z=sum(float(x),y,5);
當呼叫到過載函式時,編譯器根據實參的型別對應地呼叫相應的函式。匹配過程按如下步驟進行:
(1)如果有引數嚴格匹配(引數個數、型別完全一致)的函式,就呼叫該函式;
(2)引數通過內部型別轉換後匹配,呼叫該函式;
(3)引數通過使用者定義的型別轉換尋求匹配。
在定義過載函式時必須保證引數個數或型別不同,僅僅返回值型別不同是不行的。
函式過載的好處是:可以用相同的函式名來定義一組功能相同或類似的函式,程式的可讀性增強。
舉例:【例3.16】過載函式的應用。
#include
using namespace std;
int sum(int a,int b)
double sum(double a,double b)
float sum(float a,float b,float c)
int main()
int main()
void main()
}
C 內聯函式 函式過載與函式預設引數
inline int max int a,int b int max double f1,double f2 int max int n1,int n2 int max int n1,int n2,int n3 max 3.4,2.5 呼叫 1 max 2,4 呼叫 2 max 1,2,3 呼叫 3...
C 之特殊函式 過載 預設引數值和內聯函式
該文為中國大學mooc上北京郵電大學崔毅東和楊談老師主講的 c 程式設計 物件導向高階 筆記整理 作用域的分類 一元作用域解析運算子 當區域性變數與全域性變數相同時,可使用 訪問全域性變數,該運算子被稱為一元作用域解析運算子 include int i 10 intmain return0 過載函式...
c 函式過載和預設引數
函式過載 是c 語言物件導向的特點 多型的一種表現形式 又稱為靜多型 過載的規則 1 函式名相同。2 引數個數不同,引數型別不同,引數順序不同,均可構成過載。3 僅返回值型別不同則不可以構成過載。void func int a ok void func char a ok void func int...