函数重载、const形参、默认实参

重载

同一个作用域内的几个函数名字相同但是形参列表不同,我们称之为重载(overload)

不能定义两个函数除了返回类型外其他所用的要素都相同。


重载和const形参



默认实参

调用含有默认实参的函数时,可以包含该实参,也可以省略该实参。注意,一旦某个形参被赋予了默认值,它后面的所有形参都必须有默认值

函数调用时,默认实参负责填补函数调用缺少的尾部实参(靠右侧位置)。

typedef string::size_type sz;

string screen(sz ht = 24, sz wid = 80, char backgrnd = ' ');

如,想要覆盖backgrnd的默认值,必须为ht和wid提供实参

window =  screen( , , '?'); //错误,只能省略尾部的实参

window = screen(’?‘); //正确 ,调用的是screen('?',80, ' ')

虽然实际上是将?的ascii码63传给了height


默认实参初始值

局部变量不能作为默认实参。除此之外,只要表达式的类型能够转换成形参所需的类型,该表达式就能作为默认实参。
//wd,def和ht的声明必须出现在函数之外,

sz wd=80;

char def = ' ';

sz ht();

string screen(sz = ht(), sz = wd, char = def




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值