Aoki Job Seeker

函数默认参数及占位参数

2019-03-18
C++

函数默认参数及占位参数




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;
}

输出结果如下:


Similar Posts

上一篇 C++复合类型

Comments