一、函式的預設值
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 乙個或者多個函式,名字相同,然而引數個數或者引數型別不同,這叫做函式的過載。編譯器根據呼叫語句的實參的個數和...