В следующих фрагментах кода: В вызове функции f(1)
, 1
- литерал типа int
, а в первой функции void f(double d)
тип аргумента - double
, а второй тип аргумента void f(short int i)
- short int.
Здесь 1
- это тип int
, а не тип double
, затем Почему компилятор генерирует неоднозначную ошибку?
#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;
}