1.默认参数的目的
一般情况下,在函数调用时实参要与形参一一对应,因此,实参的个数要与形参相同。但在有时反复调用的函数所传递的是同样的实参值,对于这种情况,C++提供默认参数的办法来简单处理,就是在声明函数时,给默认参数一个默认值,在调用该函数时,如果没给形参传递实参值,则形参按默认值来处理。
如有一函数声明为:
float fun(int n=100);
指定n的默认值为100,如果在调用此函数时,不给形参n赋值,则程序会自动将它作为100进行处理。例如,调用fun函数可以是以下形式:
fun(250); //n设置为250
fun(); //n采用默认值100
以上两种调用形式都是可以的,若不给出参数,则程序将按默认值进行工作。
C++允许函数带默认参数值,是为了简化编程,把更多检查错误的工作交给编译器来做。
2.默认参数的使用
使用带有默认参数的函数时要注意以下几点:
(1)如果函数有声明有定义时,则默认参数值应在声明处给出,在定义处不能带默认参数值。当函数只有定义时,默认参数值才允许出现在函数定义中。例如:(www.daowen.com)
(2)若函数具有多个形参,则带默认参数值的形参必须自右向左连续地定义。这是由于C++语言在函数调用时参数是按向左匹配这一约定所决定的。例如:
int f(int a,float b =3.5,int c,char d='a'); //错误
int f(int a,float b =3.5,int c=6,char d='a'); //正确
(3)在调用带有默认参数的函数时,若某个参数省略,则其右端的实参都要省去而采用默认值。不允许某个参数省略后,再给其后的参数指定参数值。例如,对于如下的函数声明:
void fun(int a,int b=10,int c=20,int d=30);
则下列的调用方法中都是错误的:
fun(); //错误
fun(10,30,,60); //错误
【例1.10】设计一组求参数当中最大值的重载函数,根据参数个数不同调用不同的的重载函数。
在main()函数中调用重载max()函数,在编译时编译器会根据调用max()函数时的实参个数来确定所调用对应的重载max()函数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。