0
点赞
收藏
分享

微信扫一扫

【C++指南】缺省参数(默认参数)

sin信仰 2024-08-15 阅读 29
c++

目录

一、引言

二、缺省参数的概念

三、缺省参数的使用

全缺省参数:

半缺省参数:

声明和定义分离:

四、注意事项


 

一、引言

二、缺省参数的概念

三、缺省参数的使用

简单来说:

函数声明时缺省参数从右往左,函数调用传递实参时从左往右,如果声明和定义分离就只在声明处给缺省值

 

全缺省参数:

#include <iostream>
using namespace std;
// 全缺省

void Func1(int a = 10, int b = 20, int c = 30)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl << endl;
}

int main()
{
	Func1();//全缺省参数,调用时可以不给实参
	Func1(1);
	Func1(1, 2);
	Func1(1, 2, 3);
	return 0;
}

 

半缺省参数:

#include <iostream>
using namespace std;

// 半缺省

void Func2(int a, int b = 10, int c = 20)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl << endl;
}

int main()
{
	//Func2();   //半缺省参数不能不给实参
	Func2(100);
	Func2(100, 200);
	Func2(100, 200, 300);
	return 0;
}

声明和定义分离:

#include <iostream>
using namespace std;

void Func2(int a, int b = 10, int c = 20);
//声明和定义分离时,只在声明给出缺省值

void Func2(int a, int b , int c )
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl << endl;
}

int main()
{
	Func2(100);
	Func2(100, 200);
	Func2(100, 200, 300);
	return 0;
}

四、注意事项

1. 谨慎使用缺省参数

虽然缺省参数可以简化函数调用,但过度使用可能会使函数的行为变得难以预测,尤其是在函数具有多个缺省参数时。因此,建议仅在确实需要时才使用缺省参数。

2. 明确文档说明

在函数的文档中清楚地说明每个参数的缺省值及其含义,有助于其他开发者理解函数的行为和预期结果。

3. 缺省参数与函数重载

当函数重载与缺省参数同时使用时,需要特别注意避免歧义。因为编译器可能会根据提供的参数数量选择最合适的函数重载版本,而不是简单地使用缺省参数。

4. 考虑使用函数重载或配置对象

对于具有多个可选参数的函数,可以考虑使用函数重载或配置对象(如结构体或类)来替代缺省参数。这样可以使函数的意图更加清晰,也更容易维护和扩展。

 

 

举报

相关推荐

0 条评论