函数重载
在C++里,同一个作用域内可以定义多个同名函数,只要它们的参数列表不同就行——参数类型、数量或顺序不一样都算。返回值类型不参与重载的判别,所以不能仅靠返回值不同来区分。
经常用到的一个场景是,针对不同类型做同样逻辑的事情,比如输出int和double分别重载print。
#include <iostream>
using namespace std;
void print(int num) {
cout << "void print(int num)" << endl;
}
void print(double num) {
cout << "void print(double num)" << endl;
}
int main() {
print(1);
print(1.1);
return 0;
}
参数数量不同也构成重载,但有个坑:如果函数有缺省参数,可能会产生调用歧义,编译器会报错。
#include <iostream>
using namespace std;
void sum(int a, int b) {
cout << "void sum(int a, int b)" << endl;
}
void sum(int a, int b, int c) {
cout << "void sum(int a, int b, int c)" << endl;
}
int {
(, );
(, , );
;
}


