跳转至

C++ 笔记 | 第2课 函数重载

函数重载 function overloading

C++ 允许函数同名, 这种现象称为函数重载.

C++
1
2
3
int abs(int t);
long abs(long t);
double abs(double t)

注意: 调用时要注意参数类型: 比如 1.01.0f

缺省与函数重载

C++
double f(double x){return x * x;}
double f(double x, double y = 0) {return x * x + y * y;}
double x = f(3.0), y = f(4.0);
// 出错!由于函数有缺省参数说明,导致编译器根据 f(x) 调用无法静态束定应该调用 f(x) 还是 f(x, 0.0)

// 正确写法
double f(double x){return x * x;}
double f(double x, double y) {return x * x + y * y;}
double x = f(3.0), y = f(4.0);

// 正确写法
double f(double x, double y = 0.0) {return x * x + y * y;}