C++函数的默认值参数介绍
C++中,可以为函数的参数设置默认值,这样当在函数调用中若不指定实际参数时,默认参数将传递给形参。默认值参数使得函数调用更加简洁方便,在某些情况下可以减少代码量。默认参数是在C++11标准中引入。
C++默认参数的规则
默认值可以在函数声明或函数定义中设置;
指定默认值的参数必须位于形参列表最右端,从右往左,或者说必须最后。
下面示例说明。
例1、函数参数的默认值可以在函数声明中提供的例子
//c++中在函数声明中提供默认值参数示例
#include<iostream>
using namespace std;
// 声明一个函数,带有两个默认参数
int myFunction(int arg1 = 0, int arg2 = 1);
// 定义函数
int myFunction(int arg1, int arg2) {
return arg1 + arg2;
}
int main(){
// 调用函数时可以省略参数,使用默认值
cout<<myFunction()<<endl; // 结果为 1
cout<<myFunction(3)<<endl; // 结果为 4
cout<<myFunction(3, 4)<<endl; // 结果为 7
}
例2、函数参数的默认值可以在函数定义中提供的例子
//c++中在函数定义中提供默认值参数示例
#include<iostream>
using namespace std;
// 定义函数带有两个默认参数
int myFunction(int arg1 = 0, int arg2 = 1){
return arg1 + arg2;
}
int main(){
// 调用函数时可以省略参数,使用默认值
cout<<myFunction()<<endl; // 结果为 1
cout<<myFunction(3)<<endl; // 结果为 4
cout<<myFunction(3, 4)<<endl; // 结果为 7
}
例3、默认参数的定义顺序自左向右,如果设置了一个默认值,那么右边所有参数都要设置默认值,否则报错
//c++中的默认值参数注意事项示例
#include<iostream>
using namespace std;
//int myFunction(int arg1, int arg2 = 1, int arg3) //不允许这样,改为下面这样可以
int myFunction(int arg1, int arg2 = 1, int arg3 = 2)
{
return arg1 + arg2 + arg3;
}
int main(){
cout<<myFunction(10,20)<<endl; //32
cout<<myFunction(10)<<endl; //13
return 0;
}
例4、再给出一个例子,请留意实参的使用
//c++中的默认值参数示例
#include<iostream>
using namespace std;
int Add1(int a,int b, int c = 1){
return a + b + c;
}
int Add2(int a = 1,int b = 2,int c = 3){
return a + b + c;
}
int main(){
cout<<Add1(10,20)<<endl;// 31 第三个参数有默认值,所以可以不给出实参
cout<<Add1(10,20,30)<<endl;// 60 第三个参数有默认值,也可以给出实参
cout<<Add2()<<endl;// 6 三个参数都有默认值,可以都不给出实参
cout<<Add2(10)<<endl; //15 三个参数都有默认值,给出一个实参
cout<<Add2(10,20)<<endl; //33 三个参数都有默认值,给出二个实参
cout<<Add2(10,20,30)<<endl; //60 三个参数都有默认值,给出三个实参
return 0;
}