第一个注意事项:引用作为重载条件
using namespace std;
//函数重载注意事项一:引用作为重载条件
void func(int &a) {
cout << "func(int &a) 输出" << endl;
}
void func(const int &a) {
cout << "func(const int &a) 输出" << endl;
}
int main() {
//当输入的值为变量的时候,重载会选择func(int &a)
int a = 10;
func(a);
//当输入的变量前加上const的时候,该变量就是常量了,重载会选择func(const int &a)
const int b = 20;
func(b);
system("pause");
return 0;
}
输出结果:
func(int &a) 输出
func(const int &a) 输出
请按任意键继续. . .
第二个注意事项:函数重载碰到函数默认参数
using namespace std;
//函数重载注意事项二:函数重载碰到函数默认参数
//默认参数为int b = 20
void func(int a,int b=20) {
cout << "func(int &a,int b=20) 输出" << endl;
cout << "a=" <<a<<", b = " <<b<<endl;
}
void func(int a) {
cout << "func(int a) 输出" << endl;
}
int main() {
int a = 10;
//有默认参数的时候,编译器就不知道该如何选择函数了,因此会报错
//func(a);
func(a,100);
system("pause");
return 0;
}
输出结果如下:
func(int &a,int b=20) 输出
a=10, b = 100
请按任意键继续. . .