我正在研究c++中的函数重载,我在程序中看到了一个模棱两可的情况,
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
inlong
或 in double
。所以编译器会产生错误。我运行它,结果是一样的,错误。
那么如何long
和double
是等价的?这里模棱两可的实际原因是什么?