6.49:什么是候选函数?什么是可行函数?
Ans:候选函数是在重载函数集合中,满足函数名字与被调函数相同,并且其声明在函数调用点可见的函数。而可行函数是指在候选函数中,满足形参与实参的个数一一对应,并且实参的类型与形参相同,或者可以转换成形参类型的函数。
6.50:已知有第217页对函数f的声明,对于下面的每一个调用列出可行函数,其中哪个函数是最佳匹配?如果调用不合法,是因为没有可匹配的函数还是因为调用具有二义性?
(a)f( 2.56 , 42) (b)f(42) (c)f(42,0) (d)f( 2.56, 3.14 )
Ans:a)调用不合法。因为调用具有二义性,不管是void f(int,int);还是void f(double , double);都在其各自的实参上实现了更好的匹配。
b)调用合法。最佳匹配的函数是void f(int);
c)调用合法。最佳匹配的函数是void f( int , int );
d)调用合法。最佳匹配的函数是void f( double ,double);