函数重载
重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形参(指参数的个数、类型或者顺序)必须不同,也就是说用同一个函数完成不同的功能。
符号生成规则:
C语言:只与函数名有关
C++:由3部分构成:
1. 函数返回值
2. 函数名称
3. 函数的形参:(1)形参的个数 (2)形参的类型 (3)形参的顺序
函数重载与多态:
函数重载是c++中多态中静多态实现方法之一。
多态:静态多态(函数重载、泛型编程)
动态多态(虚函数)
多态:同一接口 不同形态
函数重载三要素:
1. 同名
2. 不同参(形参类型不同、形参个数不同、形参顺序不同)
3. 同作用域
函数重载不依赖返回值(调用点无法获取返回值类型,只与定义点有关,所以无法判断类型。)
函数重载的例子:
//如下三个函数同名,形参类型不同,构成函数重载
bool Compare(int a, int b)
{
return a > b;
}
bool Compare(double a, double b)
{
return a > b;
}
bool Compare(char* pa, char* pb)
{
return strcmp(pa, pb) > 0 ? true: false;
}
int a = 10.1;
int main()
{
bool Compare(int, int);
Compare(10, 20);
Compare(10.2, 20.2);
Compare("hello", "world");
return 0;
}