在C语言中,一个函数名只能用于一个函数,不能出现多个函数用一个函数名的情况,即使这些函数的类型和参数不一样。
如在C语言中,求绝对值函数的函数原型:
int abs(int);
long labs(long);
double fabs(double);
这三个函数功能都是求绝对值,但名字不能相同。
但是有时候我们希望功能相同但作用的类型不同或参数数目不同的函数能用相同的名字,就像求几个数的最值,我们希望求整型的和浮点型的函数能用一个名字。
C++就允许我们这样操作,称之为重载函数。
如申明求两个数的较大者函数(类型不同):
int MAX(int a,int b);
float MAX(float a,float b);
参数数目不同:
int MAX(int a,int b);
int MAX(int a,int b,int c);
注意:重载函数至少在参数个数、参数类型或参数顺序上有所不同。
如果仅仅是返回类型不同,那么系统无法知道该调用哪个函数。