C++从0到1-黑马程序员 课程学习笔记
课程链接: 12 函数高级-函数的默认参数_哔哩哔哩_bilibili
1. 函数的默认参数
语法: 返回值类型 函数名(形参= 默认值)
1. 若某个位置已经存在默认参数,那从这个位置往后,从左到右必须有默认值
2. 若函数声明有默认参数,函数实现就不能有默认参数(声明与实现只能有一个存在默认值)
2. 函数占位参数
C++中函数中的形参列表可以有占位参数,用来做占位,调用函数时必须填补该位置
语法:返回值类型 函数名 (数据类型){}
占位参数 可以有默认参数.
3.函数重载
3.1 函数重载概述
作用:函数名可以相同,提高复用性
函数重载满足条件:
- 同一个作用域下
- 函数名称相同
- 函数参数 类型不同 或 个数不同 或 顺序不同
❗函数的返回值不能作为函数重载的条件
3.2 注意事项
两种特殊情况(具体见代码):
1. 引用作为重载条件
2. 函数重载碰到默认参数
// 引用作为重载条件
void func(int &a)// int &a = 10 不合法
{
cout << "void fun(int &a)" << endl;
}
void func(const int &a)// const int &a = 10 合法 原因见引用笔记
{
cout << "void fun(const int &a)" << endl;
}
// 函数重载碰到默认参数
void func2(int a, int b)
{
cout << "void func2(int a, int b)" << endl;
}
void func2(int a)
{
cout << "void func2(int a)" << endl;
}
int main()
{
int a = 10;
func(a); // 调用的是void fun(int &a)函数
func(10); // 调用的是void fun(const int &a)函数
// func2(10); // 函数重载遇到默认参数,出现二义性,报错
return 0;
}