设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1113|回复: 5
打印 上一主题 下一主题

[求助]重载函数的问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 04:02:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原题是使用重载函数的方法定义两个函数,用来分别求出两个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
.请高手帮帮忙指点一下 小弟感激不尽
2#
发表于 2009-11-3 04:02:31 | 只看该作者
abs的返回值是什么类型
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 04:02:32 | 只看该作者
看看abs的原型:int abs( int n );
double fabs( double x );
long labs( long n );
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 04:02:33 | 只看该作者
float distan(float,float);  // float全换成double.
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 04:02:34 | 只看该作者
int型的吧
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 04:02:35 | 只看该作者
float换成double就好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 10:21 , Processed in 0.095604 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表