c++中使用了名字重组的技术,通过函数的参数类型来识别函数。所谓重载函数,就是指多个函数具有相同的函数标识符,但参数类型或参数个数不同。函数调用时,编译器以参数的类型及个数来区分调用那个函数。
下面是实例定义重载函数:
#include"stdafx.h"
#include<iostream>
using namespace std;
int Add(int x, int y)//定义一个重载函数
{
cout << "int add" << endl;//输出信息
return x + y;//设置函数返回值
}
double Add(double x, double y)//定义第二个重载函数
{
cout << "double add" << endl;//输出信息
return x + y;//设置函数返回值
}
int main()
{
int ivar = Add(5, 2);//调用第一个Add函数
float fvar = Add(10.5,11.4);//调用第二个Add函数
return 0;
}
程序中定义了两个相同函数名标识符,函数名都为add,在main调用add函数时实参类型不同。语句“int ivar=Add(10.5,11.4 );"的实参类型是双精度。编译器可以区分这两个函数,会正确调用相应的函数。