目录
什么是缺省参数
缺省参数指的是在声明或定义函数时为函数的参数传入一个初始值(这个初始值被称为缺省值),这种函数参数就被称为缺省参数,缺省参数的特点是:在调用该函数时如果缺省参数没有传入被实参则采用缺省值来初始缺省参数,如果传入了实参则采用实参来初始化缺省参数。
void Func(int a = 1)
{
std::cout << a << std::endl;
}
int main()
{
Func(); //没有传参时使用缺省值来初始化a
Func(10); //传参时使用指定的实参来初始化a
return 0;
}
缺省参数在没有对应的实参传入时会采用缺省值来进行初始化
缺省参数的注意事项
函数的全部或部分参数都允许是缺省参数,但要注意的是缺省参数必须是从右向左连续的不能是跳跃的,因为函数传参是从左向右传的如果缺省参数不是从右向左连续那么便会产生语义含混。
//合法情况
void Func(int a, int b = 20, int c = 30)
{
printf("合法缺省参数");
}
//非法情况
void Func(int a = 10, int b, int c = 30) //中间有间隔,必须是连续的
{
printf("非法缺省参数");
}
函数传参顺序
更多细节
- 有缺省参数的函数声明和定义分开的话,缺省值只能给声明不能给定义。
- 缺省值必须是常量或者全局变量
总结
- 缺省参数指的有一个初始值(缺省值)的函数参数,缺省参数的特点是如果没有被传入实参就采用缺省值来初始化该参数。
- 函数的全部或部分参数都允许是缺省参数,但是缺省参数必须是从右向左连续的。
- 函数实参的传入顺序是从左向右。
- 有缺省参数的函数声明和定义分开的话,缺省值只能给声明不能给定义。
- 缺省值必须是常量或者全局变量