有默认参数的函数

什么东东?

一般情况下,在函数调用时形参从实参那里取得值,因此实参的个数应与形参相同。

当用同样的实参多次调用同一函数时,C++提供了简单的处理方法,给形参一个默认值,这样形参就不一定要从实参取值了。

怎么用嘞?

1、定义

float area(float r = 2);

2、调用

(1)如果确认b的值为2,调用则可以不必给出实参的值。如

area () ;//相当于area(2);

(2)如果不想使形参取此默认值,则通过实参另行给出。如

area(3);//形参得到的值为3

3、多参数情况

如果有多个形参,可以使每个形参有一个默认值,也可以只对一部分形参指定默认值,另一部分不指定默认值。如

float volume(float h,float r = 3);

函数调用时

volume(5);//相当于volume(5,3);
volume (67);//h的值为6,r的值为7;

注意呦!

1、结合顺序

实参与形参的结合顺序时从左至右顺序进行的。
第一个实参与第一个形参结合,第二个实参与第二个形参结合…

因此指定默认值的参数必须放在形参列表的最右端,否则出错。

void f1(float a , int b= 0 , int c , char d = 'a');//不正确
void f2(float a , int c,int b = 0 , char d = 'a');//正确

调用
f2(3.5 , 5 , 3 , ‘x’);//形参的值全部从实参得到
f2(3.5 , 5 , 3);//最后一个形参的值取默认值’a’
f2(3.5 , 5);//最后两个形参的值取默认值,b = 0,d = ‘a’

2、函数的声明与定义

(1)如果函数的定义在调用之前,则应在函数定义中给出默认值。

(2)如果函数的定义在调用之后,则在函数调用之前需要有函数声明,此时必须在函数声明中给出默认值,在函数定义时可以不给出默认值。

(3)如果声明函数和定义函数都给出了默认值,不相同的话系统也不会报错,系统以先遇到的为准。

3、不能作重载函数

一个函数不能即作为重载函数,又作为有默认参数的函数。
因为当调用函数时,如果少写一个参数,系统无法判定是利用重载函数还是默认参数的函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值