重载函数的问题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即可。