函数重载
在C++中,同一个函数名称可多次定义,即函数重载。函数重载主要作用是提高代码复用性。
1、函数重载满足条件
- 同一作用域下
- 函数名称相同
- 函数参数类型不同 或者个数不同或者顺序不同
注意:返回值不能作为函数重载的条件
2、示例
#include <iostream>
#include <string>
using namespace std;
void func()
{
cout << "func 的调用" << endl;
}
void func(int a)
{
cout << a << endl;
}
void func(double a)
{
cout << a << endl;
}
void func(int a, double b)
{
cout << a << endl;
cout << b << endl;
}
void func(double a, int b)
{
cout << a << endl;
cout << b << endl;
}
int main(void)
{
int a = 10;
int b = 30;
double PI = 3.14;
func();
func(a);
func(PI);
func(a, PI);
func(PI, a);
system("pause");
return 0;
}
3、函数重载的注意事项
- 引用作为重载的条件
#include <iostream>
#include <string>
using namespace std;
void func(int &a) //int &a = 10; 不合法
{
cout << "func(int a) 的调用" << endl;
}
void func(const int &a) //const int &a = 10; 合法
{
cout << "func(const int a)" << endl;
}
int main(void)
{
int a = 10;
int b = 30;
func(a);
func(15);
system("pause");
return 0;
}
- 函数重载碰到默认参数,导致二义性,尽量避免使用