函数的重载
关于函数的重载,谭浩强的《C++程序设计》中是这样描述的。
在编程时,一般是一个函数对应一种功能。但有时我们要实现的是同一类的功能,只是有些细节不同。例如希望从3个数中找出其中的最大者,而每次求最大数时数据的类型不同,可能是3个整数、3个双精度数或3个长整型数。程序设计者往往会分别设计出3个不同的函数,其函数原型为:
int max1(int a,int b, int c); //求3个整数中的最大者
double max2(double a,double b,double c); //求3个双精度数中的最大者
long max3(long a,long b,long c); //求3个长整数中的最大者
从上述3个函数中不难看出它们的函数体是相同的。然而对程序编写者来说,分别编写出功能相同而名字不同的函数,这是很不方便的。有人自然会想:能否不用3个函数名而用一个统一的函数名呢?
这样函数重载的概念也就出来了,C++中允许用同一作用域中声明几个功能类似的同名函数,这些同名函数的参数个数、参数类型、参数顺序不同。这就是函数的重载,即对一个函数名重新赋予它新的含义,是一个函数名可以多用。所谓重载,其实就是“一物多用”。
下面我们来看看相关例子:求3个数中最大的数(分别考虑,整数、双精度数、长整数3种情况)<