C++ 函数匹配 重载函数的调用规则

学习《C++ Primer》一书中,函数匹配这一节内容信息较多,现截取重点内容记录于此。便于你对本文内容更好的理解,你需对类型提升、算术类型转换以及顶层cosnt,底层const有一定的了解。

多数情况下,我们可以很容易的判断出该会调用哪一个重载函数,例如,调用的重载函数之间形参数量不同,形参的类型有明显的区别等。但是,当几个重载函数形参数量相等、具有默认形参以及形参又可以发生类型转换时,判断会调用哪个重载函数就显得不那么明了。了解重载函数的调用规则有助于我们的判断。

函数匹配可以划分为三个步骤,分别为:选定候选函数,选定可行函数,寻找最佳匹配。以下面的一组重载函数为例:

void f();

void f(int);

void f(int,int);

void f(double,double = 3.14);

f(3.14);  //调用 void f(double,double = 3.14) 

f(10,20);  //调用 void f(int,int)

f(10,3.14);  //错误,二义性调用

一、候选函数

函数匹配的第一步是选定本次调用对应的重载函数集,集合中的函数称为候选函数候选函数具备两个特征:一是与被调用的函数同名,二是其声明在调用点可见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值