C 函式的預設值 函式過載

2021-09-01 05:35:14 字數 910 閱讀 9725

一、函式的預設值

1>預設值一般寫在宣告中(可以寫多個宣告)

int func(int a, int b, int c = 20);

func(10,20);   和   func(10,20,30); 都可以

2>自左向右依次賦值(實參會替代形參)

int func(int a = 10, int b, int c = 20);

func(10);//這裡會出錯,會出現二義性,應該 func(10,20);  或者  func(10,20,30);

3>預設值賦值只能賦值一次

int func(int a, int b, int c = 10);  int func(int a, int b, int c = 20); 這是錯誤的

4>預設值的限制

a.不能使用區域性變數

b.能使用全域性變數(靜態全域性變數)

c.函式也可以使用

int func(int a, int b, int c = 10);

int func(int a, int b = 20, int c);

二、函式過載

1>c++函式符號生成的規則(返回值, 函式名, 引數列表)

2>函式過載的三要素

要同作用域過載,否則會有就近原則   &&   同名     &&   引數列表要不同

int sum(int a, int b);   和  double sum(int a, int b); 不符合函式過載,因為不滿足以上三要素

其二義性==》函式過載決議(進行實參與形參的匹配)

3>注意事項

函式名相同,引數列表不同,返回值不同 不能構成函式過載

int func(int a, in b = 10);  和   int func(int a, int b);   這種不能既作預設值又作函式過載

C 三 函式的預設值 函式過載

二 函式過載 二 c 處理任意型別 函式過載 函式的預設值 函式設計過程中給予形參預設值,當沒有實參時,形參有預設值,這時候會使用到預設值。當存在實參傳入,那麼會覆蓋預設值,使用實參。如下面這段 第乙個呼叫點,使用傳入的實參30.1 第二個呼叫點,使用預設形參40.1。牢記 在函式呼叫過程中 1.函...

函式預設值 過載 inline函式

一 函式預設值 c89 不支援帶有預設值的函式 c 99 支援帶有預設值的函式 預設值注意事項 1 預設函式一般寫在宣告中 2 自右向左依次賦值 即設定預設值時應該從右至左 因為實參的傳遞是從前至後。如若不是這樣則報錯。3 預設值只能賦一次 4 預設值的限制 int compare int a,in...

內聯函式 函式過載 函式預設值

為了減少函式呼叫的開銷,引入了內聯函式機制。編譯器處理對內聯函式的呼叫語句時,是將整個函式的 插入到呼叫語句處,而不是產生呼叫函式的語句。inline int max int a,int b 乙個或者多個函式,名字相同,然而引數個數或者引數型別不同,這叫做函式的過載。編譯器根據呼叫語句的實參的個數和...