第八章 函数探幽 默认参数与函数重载

8.3 默认参数

默认参数:在函数调用省略了实参的时候会自动使用的一个值

void wow(int n = 1);
当调用 wow() 相当于调用 wow(1)

 注意:对于带参数列表的函数,必须从右到左添加默认值。实参按重左到右的的顺序依次被赋给相应的形参,不能跳过任何一个参数。

 

8.4 函数重载

函数重载:函数重载是指在同一个作用域内,可以定义多个同名的函数,但这些函数的参数列表必须不同。

注意:对于单一的重载,当类型不匹配时会进行类型的转换,从而匹配相应的函数,当有多种选择的时候,编译器将会拒绝选择,并将其视为错误。编译器在检查函数特征标的时候将会把类型引用和类型本身视为同一个特征标。

重载引用参数

请看如下三个代码段
void sink(double& r1);
void sink(const double & r2);
void sink(double && r3);

第一个函数的参数与可修改的左值参数匹配,第二个函数与可修改的左值,cosnt左值参数,和右值参数进行匹配,第三个函数与左值匹配。重载这三个函数结果将如何呢?

答案是会调用最匹配的版本

 

double x = 55.5;
const double y = 32.0;

sink(x) // 使用第一个函数
sink(y) // 使用第二个函数
sink(x + y) // 使用第三个函数

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值