Я изучал функцию перегрузки в C++, и я увидел неоднозначное состояние, в программе,`` long` и double` одинаковы при преобразовании из `` междунар компилятором
long add(long a){
long b = a;
return b;
}
double add(double a){
double b = a;
return b;
}
int main(){
int x;
x = add(10);
printf("x : %d", x);
getch();
return 0;
}
Причина неоднозначности данный в книге был, компилятор может конвертировать int
либо в long
, либо в double
. Таким образом, компилятор генерирует ошибку. Я запускаю это, и результат был таким же, Ошибка.
Итак, как long
и double
являются ? в чем причина неопределенность здесь?