C++⽀持在同⼀作⽤域中出现同名函数
但是分为参数类型不同,参数个数不同,参数顺序不同
1.参数类型不同
int Add(int left, int right)
{
cout << "int Add(int left, int right)" << endl;
return 0;
}
double Add(double left, double right)
{
cout << "double Add(double left, double right)" << endl;
return 0;
}
int main()
{
Add(10, 20);
Add(10.1, 20.2);
return 0;
}
2、参数个数不同
#include <iostream>
using namespace std;
void f()
{
cout << "f()" << endl;
}
void f(int a)
{
cout << "f(int a)" << endl;
}
int main()
{
f();
f(10);
return 0;
3、参数类型顺序不同(类型不同)
#include <iostream>
using namespace std;
void f(int a, char b)
{
cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{
cout << "f(char b, int a)" << endl;
}
int main()
{
f(10, 'a');
f('a', 10);
return 0;
}
特殊的
1.返回值不同
不能作为重载条件,因为调⽤时也⽆法区分
void fxx()
{
}
int fxx()
{
return 0;
}
2.一个参数问题
f()但是调⽤时,会报错,存在歧义,编译器不知道调⽤谁
void f1()
{
cout << "f()" << endl;
}
void f1(int a = 10)
{
cout << "f(int a)" << endl;
}