C++ 函数重载:规则、实现与实战案例
函数重载是 C++ 多态性的基础体现,它允许在同一作用域内定义多个同名函数,仅通过参数列表的差异来区分调用。这不仅能简化命名,避免为相似功能创建不同名称,还能让函数调用更灵活地适配不同类型或数量的输入。
需要注意的是,函数返回值不能作为区分重载函数的依据。例如以下代码会导致编译错误,因为编译器无法根据返回值类型决定调用哪个 add 函数:
#include <iostream>
using namespace std;
int add(int a, int b) {
return a + b;
}
double add(int a, int b) { // 非法重载:仅返回值不同
return (double)(a + b);
}
int main() {
cout << add(1, 2) << endl; // 编译错误:无法区分调用哪个 add 函数
return 0;
}
匹配规则详解
当调用一个重载函数时,编译器会按照'精确匹配 → 提升匹配 → 转换匹配'的优先级顺序来确定目标函数。
1. 精确匹配
如果调用的参数类型和数量与某个重载函数完全一致,直接触发精确匹配。
#include <iostream>
using namespace std;
void print(int a, int b) {
cout << "两个整数:" << a << " " << b << endl;
}
{
cout << << s << endl;
}
{
(, );
();
;
}


