6.49
候选函数:声明的同名的函数都可以为候选函数。
可行函数:函数参数的数目 和类型都匹配,或者类型可以隐式转换成匹配的类型的函数,都叫可行函数
6.50
(a)可行函数是void f (int,int)和 void f(double,double = 3.14).该调用不合法。存在二义性。即可将2.56转换为 int 型而调用前者,亦可将42转换为 double型而调用后者。
(b)可行函数是 void f(int) 和 void f(double, double = 3.14).该调用合法。最佳匹配函数是 void f(int)。
(c)可行函数是 void f(int ,int )和 void f(double, double = 3.14).调用合法,最佳匹配函数是void f(int ,int )
(d)可行函数是 void f(int ,int )和 void f(double, double = 3.14).调用合法,最佳匹配函数是void f(double, double = 3.14)
6.51
#include<iostream>
using namespace std;
void f()
{
cout << "调用函数为 void f(); " << endl;
}
void f(int)
{
cout << "调用函数为 void f(int); " << endl;
}
void f(int, int)
{
cout << "调用函数为 void f(int , int); " << endl;
}
void f(double, double = 3.14)
{
cout << "调用函数为 void f(double, double = 3.14); " << endl;
}
int main()
{
/*f(2.56, 42);*/
f(42);
f(42, 0);
f(2.56, 3.14);
return 0;
}