第7课 - 函数参数的扩展
一、函数参数的默认值
C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有提供参数的值,则使用默认值;参数的默认值必须在函数声明中指定,若函数定义中出现参数的默认值,编译器就报错;当函数声明和定义中的参数默认值不同时,编译器也会报错。函数参数默认值的使用如图1所示:
图1
函数默认参数的规则是默认必须从右向左提供;函数调用是使用了默认值,则后续参数必须使用默认值。如图2所示的代码,当参数变量y使用了默认值,则参数变量z必须使用默认值。
图2
二、函数占位参数
占位参数只有参数类型声明,而没有参数名声明,一般情况下,在函数体内部无法使用占位参数;如图3代码所示:
图3
函数占位参数与默认参数结合起来使用,兼容C语言程序中可能出现的不规范写法。如图4代码,用C语言编译器编译是可以编译通过的;而用C++编译器编译是会报错的。为了少量的修改代码且不引进bug,就得使用函数占位参数和默认参数。修改后的代码如图5所示。
图4
图5