重载和返回类型
重载解析中将不考虑返回类型。这样规定的理由就是要保持对重载的解析只是针对单独的运算符(11.2.1节、11.2.4节)或函数调用,与调用的环境无关。考虑
float sqrt(float);
double sqrt(double);
void f(double da, float fla)
{
float fl = sqrt(da); // 调用sqrt(double)
double d = sqrt(da); // 调用sqrt(double)
fl = sqrt(fla); // 调用sqrt(float)
d = sqrt(fla); // 调用sqrt(float)
}
如果把返回类型也考虑在内,我们就无法继续去孤立地去看一个sqrt()调用,并由此确定到底应该调用哪个函数了。
🔚