C++函数重载的用法(附带实例)
C++ 中,同一作用域内不能定义同名的变量,否则程序会编译出错;也不能定义同名的函数,否则会带来冲突问题。
但实际开发中,经常需要处理功能几乎相似,仅传入参数不同(参数类型或参数个数不同)的问题,编写大量的函数并分别命名非常麻烦。为了提高代码的复用性和可读性,C++ 允许通过函数参数列表来识别同名函数,这就是函数重载。
所谓函数重载,是指多个函数具有相同的函数名,但参数列表不同,函数调用时,编译器根据传入的参数类型及参数个数来区分调用的是哪个函数。
函数重载是 C++ 中非常重要的特性,它可以提高程序的效率,使代码更加简洁、直观、高效。
【实例】使用重载函数实现两个数相加。本实例中,定义 int Add(int x, int y) 函数,再定义 double Add(double x, double y) 函数,这两个函数的名称都是 Add,仅参数类型不同。在主函数中调用这两个函数,输出两数相加结果。代码如下:
在定义重载函数时,应注意函数的返回值类型不作为区分重载函数的一部分。例如,下面的重载函数是非法的:
但实际开发中,经常需要处理功能几乎相似,仅传入参数不同(参数类型或参数个数不同)的问题,编写大量的函数并分别命名非常麻烦。为了提高代码的复用性和可读性,C++ 允许通过函数参数列表来识别同名函数,这就是函数重载。
所谓函数重载,是指多个函数具有相同的函数名,但参数列表不同,函数调用时,编译器根据传入的参数类型及参数个数来区分调用的是哪个函数。
函数重载是 C++ 中非常重要的特性,它可以提高程序的效率,使代码更加简洁、直观、高效。
【实例】使用重载函数实现两个数相加。本实例中,定义 int Add(int x, int y) 函数,再定义 double Add(double x, double y) 函数,这两个函数的名称都是 Add,仅参数类型不同。在主函数中调用这两个函数,输出两数相加结果。代码如下:
#include <iostream> using namespace std; int Add(int x, int y) //定义函数 add(),返回两个整数的和 { cout << "调用 int add()函数" << endl; return x + y; } double Add(double x, double y) //重载函数 add(),返回两个双精度数的和 { cout << "调用 double add()函数" << endl; return x + y; } int main() { int ivar = Add(5, 2); //调用 int Add()函数 cout << "sum = " << ivar << endl; float fvar = Add(10.5, 11.4); //调用 double Add()函数 cout << "sum = " << fvar << endl; return 0; }程序运行结果为:
调用 int add()函数
sum = 7
调用 double add()函数
sum = 21.9
在定义重载函数时,应注意函数的返回值类型不作为区分重载函数的一部分。例如,下面的重载函数是非法的:
int Add(int x, int y) //定义一个重载函数 { return x + y; } double Add(int x, int y) //定义第二个重载函数 { return x + y; }