跳转至

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++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
double f(double x){return x*x;}
double f(double x, double y=0) {return x*x+y*y;}
double x(3.0), y(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(3.0), y(4.0);

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

函数重载 function overloading

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

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

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

缺省与函数重载

C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
double f(double x){ return x*x;}
double f(double x, double y=0) { return x*x+y*y;}
double x(3.0), y(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(3.0), y(4.0);

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