在 C 语言中,若需交换两个变量,通常通过指针传参实现。例如交换 int 类型:
void Swap(int* x, int* y) {
int temp = *x;
*x = *y;
*y = temp;
}
如果需求变为交换 float 或 char 变量,由于 C 不支持同名函数,必须创建 Swap_float、Swap_char 等新函数。这导致大量逻辑重复代码,增加维护成本。
C++ 引入了函数重载(Function Overloading)机制,允许在同一作用域内定义多个同名函数,只要参数列表不同即可。这使得我们可以用统一的接口处理不同类型的数据。
函数重载的条件
要构成有效的函数重载,必须满足以下核心条件:
- 同名函数:函数名称必须一致。
- 参数列表不同:
- 参数类型不同(如
int与double)。 - 参数数量不同(如单参数与多参数)。
- 参数顺序不同(如
int, double与double, int)。
- 参数类型不同(如
- 返回类型无关:仅返回类型不同不构成重载,编译器无法据此区分调用。
示例说明
参数个数不同:
void print(int num) {
std::cout << "Printing single integer: " << num << std::endl;
}
void print(int num1, int num2) {
std::cout << "Printing two integers: " << num1 << " and " << num2 << std::endl;
}
int main() {
print(10); // 调用 print(int)
print(20, 30); // 调用 print(int, int)
;
}


