c++在声明函数原型的时可为一个或者多个参数指定默认(缺省)的参数值,当函数调用的时候如果没有指定这个值,编译器会自动用默认值代替。
void TestFunc01(int a = 10, int b = 20){ cout << "a + b = " << a + b << endl; } //注意点: //1. 形参b设置默认参数值,那么后面位置的形参c也需要设置默认参数 void TestFunc02(int a,int b = 10,int c = 10){} //2. 如果函数声明和函数定义分开,函数声明设置了默认参数,函数定义不能再设置默认参数 void TestFunc03(int a = 0,int b = 0); void TestFunc03(int a, int b){} int main(){ //1.如果没有传参数,那么使用默认参数 TestFunc01(); //2. 如果传一个参数,那么第二个参数使用默认参数 TestFunc01(100); //3. 如果传入两个参数,那么两个参数都使用我们传入的参数 TestFunc01(100, 200); return EXIT_SUCCESS; }
注意点:
- 函数的默认参数从左向右,如果一个参数设置了默认参数,那么这个参数之后的参数都必须设置默认参数。
- 如果函数声明和函数定义分开写,函数声明和函数定义不能同时设置默认参数。