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)函数*/ }
如果将返回类型考虑到函数重载中,编译器将无法再独立于上下文决定调用哪个函数。
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)函数*/ }
如果将返回类型考虑到函数重载中,编译器将无法再独立于上下文决定调用哪个函数。