函数默认参数及占位参数
1.函数默认参数
C++在声明函数原型时可为一个或多个参数指定默认(缺省)的参数值,当函数调用的时候如果没有指定这个值,编译器会自动用默认值代替。
#include <iostream>
using namespace std;
void func01(int a = 10, int b = 100)
{
cout << "a+b=" << a + b << endl;
}
void func02(int a, int b = 12, int c = 11)
{
cout << "a=" << a << ",b=" << b << ",c=" << c << endl;
}
void func03(int a = 0, int b = 0);
void func03(int a, int b)
{
cout << "a=" << a << ",b=" << b << endl;
}
int main()
{
func01();//使用默认参数
func01(100, 100);//使用现在传入的参数
func01(110);//只传入一个参数,第二个参数使用默认参数
func02(12);//b,c使用默认参数
func03();//没有传参数,使用默认参数
return 0;
}
输出结果如下:
注意点:
- 函数的默认常数函数从左往右,如果一个参数设置了默认参数,那么这个参数之后的参数都必须设置默认参数。
- 如果函数声明和函数定义分开写,函数声明与函数定义不能同时设置默认参数。
2.函数的占位符
C++在声明函数时,可以使用占位参数。占位参数只有类型声明,而没有参数名声明。一般情况下,在函数体内无法使用占位参数。
#include <iostream>
using namespace std;
void func01(int a,int b,int)
{
//函数内部无法使用占位参数
cout << a + b << endl;
}
void func02(int a, int b, int = 10)
{
//无法使用占位参数
cout << a + b << endl;
}
int main()
{
func01(10, 15, 20);
func02(10, 25);//占位参数使用默认参数
return 0;
}
输出结果如下: