函数重载
函数重载的条件
- 同一个作用域下
- 函数名相同
- 函数参数不同
– 参数个数不同
– 参数顺序不同
– 参数类型不同 - 不可以使用返回值作为重载的条件
code:
#include<iostream>
using namespace std;
void test()
{
cout << "void test()" << endl;
}
void test(int a)
{
cout << "void test(int a)" << endl;
}
void test(int a, float b)
{
cout << "void test(int a, float b)" << endl;
}
void test(float a, int b)
{
cout << "void test(float a, int b)" << endl;
}
void main()
{
test();
test(100);
test(100, 3.14);
test(3.14, 100);
system("pause");
}
result:
void test()
void test(int a)
void test(int a, float b)
void test(float a, int b)
函数重载注意事项
引用作为重载
code:
#include<iostream>
using namespace std;
void test(int &a)
{
cout << "void test(int &a)" << endl;
}
void test(const int& a)
{
cout << "void test(const int& a)" << endl;
}
void main()
{
int a = 10;
test(a);
test(10);
system("pause");
}
result:
void test(int &a)
void test(const int& a)
函数重载遇到默认参数
code:
#include<iostream>
using namespace std;
void test(int a, int b = 10)
{
cout << "void test(int a, int b = 10)" << endl;
}
void test(int a)
{
cout << "void test(int a)" << endl;
}
void main()
{
test(20, 30);
system("pause");
}
result:
void test(int a, int b = 10)