函数重载的问题请教
函数重载的问题,请求高手讲解一下
××××××××××××××××××××××××××××
void func(float a)
{
cout <<"1";
}
void func(int a)
{
cout <<"2";
}
void main()
{
func(1);
func(1.1);
}
××××××××××××××××××××××××××××
编译出错
error C2668: 'func' : ambiguous call to overloaded function
是说func(1.1)不知道应该调用那个函数
但是为什么func(1)就知道调用void func(int a)呢。
[解决办法]
1.1是doulbe类型,而不是float类型。
如果你写1.1f就会调用float那个函数。
1是int类型,可以完全匹配,就调用int那个函数。
[解决办法]
func(1.1f);