In the following code snippets, In function call f(1)
, 1
is a literal of type int
and in first function void f(double d)
argument type is double
and second function void f(short int i)
argument type is short int.
Here 1
is an int
type not a double
type, then Why does compiler generated ambiguous error?
#include <iostream>
using namespace std;
void f(double d) // First function
{
cout<<d<<endl;
}
void f(short int i) // Second function
{
cout<<i<<endl;
}
int main()
{
f(1); // 1 is a literal of type int
return 0;
}
int
andshort int
are different types.short
is not some sort of qualifier forint
– Oared