- 默认参数
- 占位参数
- 函数重载
C++和C语言不同的是,在C++的函数中形参中可以有默认值的
语法:返回值 函数名 (形参 = 默认值)
下面用3段代码来形象说明一下:
#include#include #include //c++中字符串需要添加这个头文件 using namespace std; int fun(int a=10,int b=20) { return a+b; } int main() { int num = fun(); cout << num << endl; system("pause"); return 0; }
第二段:
#include#include #include //c++中字符串需要添加这个头文件 using namespace std; int fun(int aa,int a=10,int b=20) { return a+b+aa; } int main() { int num = fun(10); cout << num << endl; system("pause"); return 0; }
第三段:
#include#include #include //c++中字符串需要添加这个头文件 using namespace std; int fun(int aa,int a=10,int b=20) { return a+b+aa; } int main() { int num = fun(10,20); cout << num << endl; system("pause"); return 0; }
第三段代码可以说明:如果说我们有传入参数,那么就会用我们传入的数据,如果没有,就用默认参数。
注意事项
- 如果某个位置已经有个默认参数,那么从这个位置往后,从左到右必须都有默认参数
- 如果函数声明有默认参数,函数实现就不能有默认参数(声明和实现只能有1个有默认参数)
占位参数,顾名思义,就是在函数里面用来给形参占位的。
形参里面必须要有占位参数用来占位,调用函数的时候填补该位置
#include函数重载#include #include //c++中字符串需要添加这个头文件 using namespace std; int fun(int ,int ,int ) { cout << "占位参数" << endl; return 0; } int main() { fun(10,20,30); system("pause"); return 0; }
函数重载的意义就是,节省函数名。
作用:函数名可以相同,提高复用性
条件:
- 同一个作用域下
- 函数名称相同
- 函数参数类型不同或者个数不同或者顺序不同
- 函数的返回值不可以作为函数重载的条件
注意事项
- 引用作为函数重载的条件
- 函数重载碰到默认参数
- 加不加const也可以作为一个函数重载的条件
函数重载加默认参数的时候可能会出现二义性报错,尽量避免



