新微赢技术网

标题: [求助]重载函数的问题 [打印本页]

作者: ωǒ↘倫↙    时间: 2009-11-3 04:02
标题: [求助]重载函数的问题
原题是使用重载函数的方法定义两个函数,用来分别求出两个int型数的点间距离和浮点型数的点间距离。
#include<iostream.h>
#include<math.h>
int distan(int,int);
float distan(float,float);
void main()
{
int distance1;
float distance2;
distance1=distan(1,2);
distance2=distan(1.35,2.78);//出错处
cout<<distance1<<distance2;
}
int distan(int x,int y)
{
int c=abs(x-y);
return c;
}
float distan(float x,float y)
{
float c=abs(x-y);//错误处
return c;
}
d:\vc++ 6.0\myprojects\p1299\p7.cpp(10) : error C2668: 'distan' : ambiguous call to overloaded function
d:\vc++ 6.0\myprojects\p1299\p7.cpp(20) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
d:\vc++ 6.0\myprojects\p1299\p7.cpp(20) : warning C4244: 'initializing' : conversion from 'int' to 'float', possible loss of data
.请高手帮帮忙指点一下 小弟感激不尽
作者: 泡个帅滴上床    时间: 2009-11-3 04:02
abs的返回值是什么类型
作者: 灬☆爱你    时间: 2009-11-3 04:02
看看abs的原型:int abs( int n );
double fabs( double x );
long labs( long n );
作者: 若叶花吹雪    时间: 2009-11-3 04:02
float distan(float,float);  // float全换成double.
作者: 若叶花吹雪    时间: 2009-11-3 04:02
int型的吧
作者: 忧郁侠客    时间: 2009-11-3 04:02
float换成double就好了




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2