在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型)必须不同。例如,您可能需要一个w3cTest() 函数来打印其参数的值。当重载函数时,函数的定义必须根据参数列表中的参数的个数、或类型而不同。

void w3cTest(int x) {
    cout << "整数为: " << x << endl;
}
void w3cTest(float x) {
    cout << "浮点数为: " << x << endl;
}
int main() {
  int a = 30;
  float b = 68.652;
  w3cTest(a);
  w3cTest(b);
}

/* 输出:  
整数为: 30
浮点数为: 68.652
*/

您不能仅通过返回类型的不同来重载函数。

下面的声明将导致错误。

int w3cTest(int a) {}
float w3cTest(int b) {}
string w3cTest(int c) {}

虽然每个函数都使用相同的名称,但唯一的区别是返回类型,这是不允许的。