一、函数匹配相关的知识点。
(a)什么是候选函数?什么是可行函数?
知识点1:候选函数:函数匹配的第一步是选定本次调用的重载函数集,集合中的函数被称为候选函数。
候选函数的特征:一是与被调用的函数同名,二是其声明在调用点可见。
知识点2:根据实参情况,从候选函数中挑选出能被这实参调用的函数,此次选出的函数被称为可行函数。
可行函数的特征:一是其形参数量与本次调用提供的实参数量相等,二是每个实参的类型与对应的形参类型相同,或者能转化成形参的类型。
(b)函数匹配的步骤是什么?
第一步:选定本次调用对应的重载函数集;
第二步:考察本次调用的实参,然后从候选函数中选出能被这组实参调用的函数;
第三步:从可行函数中选择与本次调用最匹配的函数;
二、已知有第217页对函数的f的声明,对于下面的每一个调用列出可行函数。其中哪个函数是最佳匹配?如果调用不合法,是因为可匹配的函数还是因为调用具有二义性?
void f();
void f(int);
void f(int,int);
void f(double ,double=3.14);
(a)f (2.56,42)
(b)f (42)
©f (42,0)
(d)f(2.56,3.14)
解析:答案(a):不合法,42为int (b):合法 ©:合法 (d):合法
三、编写函数f的4个版本,令其各输出一条可以区分