【C++】函式的預設值 && 函式過載
阿新 • • 發佈:2018-11-21
一、函式的預設值
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); 這種不能既作預設值又作函式過載