目录
缺省参数:
缺省参数是声明或定义函数时为函数的参数指定一个默认值,在调用这个函数时,如果没有给函数指定的实参,则使用这个默认值作为函数的参数
#include <iostream>
using namespace std;
int add(int a = 10, int b = 20)
{
return a + b;
}
int main()
{
cout<<add()<<endl;//没有传参,使用参数的默认值
cout<<add(1,2)<<endl;//传参,使用指定的参数
system("pause");
return 0;
}
运行结果:
在第一次调用该函数,没有给函数指定的参数,所以函数使用我们在定义该函数时提供的默认值作为参数
缺省参数的分类
全缺省参数:全缺省参数是给函数的每个参数都提供了默认值,上述的代码就是全缺省参数,add()函数的两个参数都有默认值
半缺省参数:半缺省参数就是函数中的参数不是每个都有默认值
#include <iostream>
using namespace std;
int add(int a, int b = 10)
{
return a+b;
}
int main()
{
cout<<add(1)<<endl;
return 0;
}
运行结果:
注意:
半缺省参数必须从右到左给,不能间隔 比如 add(int a = 10, int b),这样子就是错误的,
缺省参数不能在函数的声明或定义同时出现,
void TestFunc(int a = 10);
void TestFunc(int a = 20)
{
}
// 注意:如果生命与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那
· 缺省值必须是常量或者全局变量(生命周期要比函数的长)
缺省参数的匹配规则是从左往右依次进行匹配,函数传参规则从右往左依次传递参数