C++ 允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading)。
一个基本的例子;
#include<iostream>
using namespace std;
void print(int i)
{
cout<<"a integer :"<<i<<endl;
}
void print(string str)
{
cout<<"a string :"<<str<<endl;
}
int main()
{
print(99);
print("hello world!!!");
return 0;
}
重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
下表显示了 C++ 使用函数声明的哪些部分来区分同一范围内具有相同名称的函数组;
函数声明元素 是否用于重载?
函数返回类型 否
自变量的数量 是
自变量的类型 是
省略号存在或缺失 是
typedef 名称的使用 否
未指定的数组边界 否
const 或 volatile 是,应用于整个函数时
引用限定符(& 和 &&) 是