1、函数参数的扩展。
1、函数参数的默认值。
1、C++在函数声明时为函数提供一个默认的参数值。当函数调用没有参数的值的时候,使用默认参数。
代码:
void Test(int x = 0);
int main()
{
Test();
return 0;
}
void Test(int x)
{
printf("%d",x);
}
2、参数默认值必须在函数声明中指定。
3、函数定义中是否可以存在参数的默认值?
2、参数的默认值必须从右向左提供。(设置)
函数调用使用了默认值,则后续参数都必须使用默认值。(调用:匹配从左到右)。
int add(int x, int y = 1; int z = 2)
{
return x + z + y;
}
add(0);//x = 0 y = 1 z = 2
add(2,3);//x = 2 y = 3 z = 2
add(1,2,3)//x = 1 y = 2 z= 3
3、函数的占位参数
1、C++中可以为函数提供占位参数。
2、占位符只有函数参数类型声明,没有参数声明。
3、一般情况下无法在函数体内使用占位参数。
代码:
int fun(int x, int )
{
return x;
}
//......
fun(1,2);//OK
4、占位符参数的意义
1、占位参数与默认参数结合起来使用。
2、兼容C语言中可能出现的不规范的写法。
3、void func(); 与 void func(void);//在C语言中这两种声明方式不等价,在C++中是等价的。所以为了兼容C语言,可以使用函数默认参数
小结:
1、C++中支持函数参数的默认值。
2、如果函数调用时没有使用参数值,则使用默认参数值。
3、参数的默认值必须从右向左提供。
4、当函数调用中使用了默认参数值,则后续参数必须使用默认参数值。
5、C++中支持占位参数,用于兼容C语言中的不规范写法。