1,0是double
所以调用了模版
尝试
int main()
{
f(1);
float a = 1.0;
f(a); // 这样就会使用f(float)
system("pause");
return 0;
}
或者
int main()
{
f(1);
f(1.0f); // 这样也会使用f(float)
system("pause");
return 0;
}
因为1.0默认是double型,所以f(1.0)的调用即不是调用f(int i)也不是调用f(float i)
如果你写f(1.0f);则会调用f(float i)函数