C++对C语言的扩展--默认参数和占位参数
1 默认参数和占位参数
通常情况下,函数在调用时,形参从实参那里取得值。对于多次调用同一函数同一实参时,C++给出了更简单的处理办法。给形参以默认值,这样就不用从实参那里取值了。
1.1 单个默认参数
//1 若你填写参数,使用你填写的,不填写默认
void func(int a = 3)
{
cout << a << endl;
}
1.2 多个默认参数
//2 在默认参数规则 ,如果默认参数出现,那么右边的都必须有默认参数
void func(int a, int b, int c = 1, int d = 2)
{
cout << a << endl;
cout << b << endl;
cout << c << endl;
cout << d << endl;
}
int main()
{
func(10, 11);
func(10, 11, 12);
func(10, 11, 12, 13);
return 0;
}
1.3 默认参数规则
- 只有参数列表后面部分的参数才可以提供默认参数值,一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值
- 函数声明和实现,只能有一个提供默认参数,不可以同时加默认参数
1.4 占位参数
- 只写一个类型进行占位,调用时必须要传入占位值
- void func(int a, int = 1);
- 占位参数也可以有默认值
/*
可以将占位参数与默认参数结合起来使用
意义:
1.为以后程序的扩展留下线索
2.兼容C语⾔言程序中可能出现的不规范写法
*/
//C++可以声明占位符参数,占位符参数仪般用于程序扩展和对C代码的兼容
int func(int a, int b, int = 0)
{
return a+b;
}
int main()
{
// 如果默认参数和占位参数在一起,都能调⽤用起来
func(1, 2);
func(1, 2, 3);
return 0;
}
结论:如果默认参数和占位参数在一起,都能调用起来