c语言写重载函数:
首先明确重载函数的定义:在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。
当将要定义一组函数,使它们执行一系列的操作,但是它们是应用在不同的参数类型上的。此时可以选择重载函数。
例如:
上面的三个函数都可以大概地说成判断一组数中的最大值,对于函数的用户来说,他们并不关心函数定义的细节,也就是说他们不关心判断两个整数的大小和判断数组(vector容器)数的大小应该使用不同的函数,而对于程序的设计者来说这可是不得不想到的。程序员必须记住并查找每个函数名。而函数的重载把程序员从这种问题的复杂性中解放了出来,C++提供了这种支持。
上面的三个比较大小的函数可以定义成:
通过参数就可以一眼分辨不同的函数。
重载函数一般区别于参数类型,参数个数;
图片看不清无法判断,但是基本上这个错误就是你所的重载函数的参数类型不确定。
编译器无法通过参数类型判断你调用的是具体哪个函数;
比如对于重载函数
A(double aa,double bb)A(float aa,float bb)
A(char aa,char bb)
//调用为
int int i,j
A(i,j)//此时重载函数中没有int型参数的重载,就会报错调用不明确
//正确用法
A(double(i),double(j))//做强制转换,明确调用的函数
补充,看了你其他的提问,图片看到了,错误是switch()这个函数参数类型是整型int,你用了浮点
型以及sqrt()函数没有整形的参数,你需要将整型强制转换为浮点型