你是否在为 同一种功能,只是因为参数类型不同,但是调用时要调不同的函数而发愁???
函数重载:同一个函数名,写同一类功能的函数。
参数类型不一样、函数名一样。编译器通过参数的类型去匹配具体的那个函数。
同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。
简而言之,C++允许同一作用域中出现函数名相同,参数不同,功能相似的函数,而这些函数就构成函数重载。
函数重载条件:
第一要满足:函数名相同
第二要满足:参数不同,具体表现在参数类型的顺序、参数的个数、参数的类型。
借助代码进行理解:
#include <iostream>
void pri(char a, char b){//1号
printf("%c == %c\n",a,b);
}
void pri(const char* a, const char* b){//2号 与1号参数类型不同
printf("%s -- %s\n",a,b);
}
void pri(char flag, int a, int b){//3号 与1号,2号 参数类型和个数,顺序都不同
printf("%c >> %d : %d\n",flag,a,b);
}
int main(){
pri('a','b');
pri("hello","world!");
pri('A',6,5);
return 0;
}
运行结果: