- 重载函数的问题c++原题是使用重载函数的方法定义两个函数,用来分
- 原题是使用重载的方法定义两个函数,用来分别求出两个int型数的点间距离和浮点型数的点间距离。
#include
#include
int distan(int,int);
float distan(float,float);
void main()
{
int distance1;
float distance2;
distance1=distan(1,2);
distance2=distan(1.35,2.78);//出错处
原
- 第一处错误的确如楼上所说,是因为数据类型不明确。由于1.35和2.78会被默认为double型而非float型,而你并没有提供含有double型输入参数的distan函数,因此就给编译器造成困扰,不明白究竟应该转换为int型还是float型。如果你在输入时写成1.35f和2.78f,则表示强制转换为float型,此时就不会报错了。
第20行报的是警告,是因为数据会被截断而导致计算误差,abs函数只支持int型,要计算float型或double型的绝对值则需用fabs函数。因此,这里你只需在abs前面加一个f即可。