C 函式的過載 內聯和預設引數

2021-08-04 20:12:11 字數 820 閱讀 1965

在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...