C++函数高级
注意事項:
(1)如果某個位置已經有了默認參數,那么從這個位置往后,從左往右都必須有默認值
(2)如果函數的聲明有了默認參數,那么函數的實現就不能有默認參數了。
聲明和實現只能有一個有默認參數。不然有二義性。
結果:
語法:
example:
#include <iostream> using namespace std;void func(int a, int){cout << "this is a function!" << endl; } int main(){ func(10,10);return 0; }注意:這里調用func必須有兩個整形參數
strange:占位參數在函數體里內用不到為啥還要占位
占位參數也可以有默認參數
作用:函數名可以相同,提高復用性
函數重載的滿足條件:
- 同一作用域下
- 函數名稱相同
- 函數的參數類型不同或個數不同或順序不同
注意:函數的返回值不可以作為函數重載的條件
注意事項:
(1)引用作為重載條件
const int引用和int引用是不同的參數類型
(2)函數重載碰到函數默認參數
#include <iostream> using namespace std;void func2(int a,int b = 10){cout << "func2(int a,int b)的調用" << endl; } void func2(int a){cout << "func2(int a)的調用" << endl; } int main(){ func2(10);//函數重載碰到默認參數會出現二義性 }報錯!!!編譯器不知道調用哪個!!!
函數重載碰到默認參數會出現二義性!!!!盡量避免這種情況!!!
總結
- 上一篇: 程序的内存模型—new运算符
- 下一篇: 1、C++招聘笔试--C++中的C