В следующих фрагментах кода: В вызове функции 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;
}