两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参与形参的类型以及个数的最佳匹配,自动确定调用的函数,这就是函数的重载。
两个名字相同的函数必须具有不同的形参,这里的不同指的是形参的个数或形参的类型不同。
注意:函数的返回值不同,其他都相同不是函数的重载,编译器会报错。
int add(int x,int y);float add(float x,float y)//形参类型不同int add(int x,int y);int add(int x,int y, int z); //形参个数不同
要注意函数重载的二义性
void fun(int length ,int width=3, int height =4);void fun ( int length );
这样的两个函数原型,在编译的事后编译器没法区别成不同的函数重载形式。
如我们进行如下调用:
fun(1)
这样编译器不知道到底要调用那个函数,因为两个都可以调用。就会报错。