3.3 函数重载
3.3.1 函数重载概述
作用:函数名可以相同,提高复用性
函数重载满足条件
- 同一个作用域下
- 函数名称相同
- 函数参数类型不同 或者 个数不同 或者顺序不同
注意:函数的返回值不可以作为函数重载的条件
示例代码
# include <iostream>
using namespace std;
//函数重载的满足条件
//1.同一个作用域下
//2.函数名称相同
//3.函数参数类型不同,或者个数不同,或者顺序不同
void func()
{
cout << "func的调用" << endl;
}
void func(int a)
{
cout << "func(int a)的调用!" << endl;
}
//注意事项
/*函数的返回值不可以作为函数重载的条件
int func(int a)
{
cout << "func(int a)的调用!" << endl;
}*/
int main()
{
func(10);
system("pause");
return 0;
}
3.3.2 函数重载的注意事项
- 引用作为重载条件
- 函数重载碰到函数默认参数
示例代码
# include <iostream>
using namespace std;
//函数重载的注意事项
//1. 引用作为重载的条件
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;
}
//2. 函数重载碰到默认参数
void func2(int a, int b = 10)
{
cout << "func(int a, int b = 10)的调用" << endl;
}
void func2(int a)
{
cout << "func(int a)的调用" << endl;
}
int main()
{
int a = 10;
func(a); //a是变量,变量就说明可读可写,可修饰,而const只读
int a = 10;
func(10);
//func2(); 当函数重载碰到默认参数,出现二义性,报错,尽量避免这种情况
system("pause");
return 0;
}
0 条评论