Skip to content
On this page

CPP_函数重载


标签:CPP/基础  
  • 函数重载

  • 相同的范围:重载的函数必须在同一个作用域内,可以是全局作用域或类作用域。

  • 函数名相同:重载的函数必须具有相同的函数名。

  • 参数列表不同:重载的函数必须具有不同的参数列表。这包括参数的数量、类型或顺序的差异。

  • 返回类型可以相同也可以不同:函数重载可以具有相同的返回类型,但它们也可以有不同的返回类型。

仅根据返回类型的差异是无法进行函数重载的。函数重载的决定因素是函数名和参数列表。

cpp
int myMax(int a, int b) { return a > b ? a : b; }
int myMax(int a, int b, int c) { return myMax(myMax(a, b), c); }
double myMax(int a, int b) { return a > b ? a : b; }  
double myMax(double a, double b) { return a > b ? a : b; }
double myMax(double a, double b, double c) { return myMax(myMax(a, b), c); }

CPP 的函数重载和函数默认参数可以同时使用:

cpp
int add(int a, int b=100);
int add(int a, int b);

但是在调用函数的时候,add(2,5)会报错,因为编译器不知道要调用哪个函数(重载的函数在编译到汇编的时候,有不同的函数名)。

Last updated: