在一个程序内部,两个函数有相同的名字,但参数列表表不同,。这种叫做函数重载
如
int max(int n1,int n2);
double max( double n1,double n2);
double max(double n1,double n2,double n3);
注:函数重载必须具有不同的参数列表,不能仅仅依赖于返回类型不同来重载函数
为什么需要函数重载(why)?
- 试想如果没有函数重载机制,如在C中,你必须要这样去做:为这个print函数取不同的名字,如print_int、print_string。这里还只是两个的情况,如果是很多个的话,就需要为实现同一个功能的函数取很多个名字,如加入打印long型、char*、各种类型的数组等等。这样做很不友好!
- 类的构造函数跟类名相同,也就是说:构造函数都同名。如果没有函数重载机制,要想实例化不同的对象,那是相当的麻烦!
- 操作符重载,本质上就是函数重载,它大大丰富了已有操作符的含义,方便使用,如+可用于连接字符串等!