一句话理解
函数重载是同名函数靠参数列表不同来区分。
为什么要学
同一件事情处理 int 和 long long,可以共用一个名字。
讲解
参数个数或类型不同即可重载。只是返回类型不同不能重载。
竞赛里用得不多,但看标准库会遇到,比如 max 可以比 int 也可以比 long long。
例子
int add(int a, int b) { return a + b; }
double add(double a, double b) { return a + b; }
同名 add,一个处理 int,一个处理 double。调用时按参数类型选。
常见错误
- 两个函数参数完全一样只改返回类型。
- 调用时类型模糊,编译器不知道选哪个。