C++ Primer(第5版) 练习 18.20
练习 18.20 在下面的代码中,确定哪个函数与compute调用匹配。列出所有候选函数和可行函数,对于每个可行函数的实参与形参的匹配过程来说,发生了哪种类型转换?
namespace primerLib{
void compute();
void compute(const void *);
}
using primerLib::compute;
void compute(int);
void compute(double ,double = 3.4);
void compute(char *, char* = 0);
void f(){
compute(0);
}
如果将using声明置于main函数中compute的调用点之前将发生什么情况?重新回答之前的那些问题。
环境:Linux Ubuntu(云服务器)
工具:vim
解释
namespace primerLib{
void compute();
void compute(const void *);
}
using primerLib::compute;
void compute(int);
void compute(double ,double = 3.4);
void compute(char *, char* = 0);
void f(){
compute(0);
}
//候选函数
void compute(int);
void compute(double ,double = 3.4);
void compute(char *, char* = 0);
primerLib::compute(const void*);
//可行函数
void compute(int);
//其他函数需要进行隐式转换
/*******************************************/
//如果放在调用点之前
namespace primerLib{
void compute();
void compute(const void *);
}
void compute(int);
void compute(double ,double = 3.4);
void compute(char *, char* = 0);
using primerLib::compute;
void f(){
compute(0);
}
//候选函数
primerLib::compute();
primerLib::compute(const void*);
//可行函数
primerLib::compute(const void*);