读书人

关于函数重载的有关问题。

发布时间: 2012-04-08 14:38:30 作者: rapoo

关于函数重载的问题。。。
int abs(int a); //返回a的绝对值

double abs(double a); //返回a的平方根,与abs的意义背离

void func(int a,double d){

int b = abs(a); //理解!

double c = 1.0+abs(d); //将abs的功能误解为求绝对值
}
这里的abs(d)为什么会误解成求绝对值的函数呢。。。

[解决办法]
怎么可能呢,abs(d);调用的就是求平方根的那个函数,你是不是看错了,当你用double d实参去传递参数时,调用的就是double abs(double s)这个函数,不可能调用求绝对值的那个函数的,因为实参与形参完全匹配,不会先进行转换再调用,
是不是你输入的数所求的绝对值和平方根的值相等,误以为调用了求绝对值的那个函数

读书人网 >C++

热点推荐