前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C++】缺省参数(默认参数)

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

作者头像
修修修也
发布2024-04-01 16:14:52
1340
发布2024-04-01 16:14:52
举报

📌缺省参数的概念

缺省参数是声明或定义函数时为函数的参数指定一个一个缺省值。调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参

如下程序,Print函数有一个缺省值为0的参数p:

代码语言:javascript
复制
using std::cout;
using std::endl;

void Print(int p = 0)
{
	cout << p << endl;
}

int main()
{
	Print();      //没传参时,使用参数的默认值
	Print(1);     //传参时,使用指定的实参
	Print(2);
	Print(3);

	return 0;
}

程序运行结果:


📌缺省参数的分类

🎏全缺省参数

如下函数Sum,如果函数的所有参数都指定了缺省值,那么该函数就被称为全缺省参数:

代码语言:javascript
复制
void Sum(int a = 1, int b = 1, int c = 2)
{
	cout << a + b + c << endl;
}

🎏半缺省参数

如下函数Sum_2,如果函数既有未被指定缺省值的参数,又有被指定缺省值的参数,那么该函数就被称为半缺省参数:

代码语言:javascript
复制
void Sum_2(int a , int b = 1, int c = 2)
{
	cout << a + b + c << endl;
}

需要注意的是:

半缺省参数必须从右往左依次来给出,不能间隔着给。如下四种缺省函数的定义都是不合法的!

代码语言:javascript
复制
void Sum(int a = 1, int b , int c )//不符合从右往左给
{
	
}

void Sum(int a = 1, int b = 1, int c )//不符合从右往左给
{
	
}

void Sum(int a , int b = 1, int c )//不符合不能间隔
{
	
}

void Sum_2(int a = 1, int b , int c = 2)//不符合不能间隔
{
	
}

缺省参数不能在函数声明和定义中同时出现。像下面这种声明和定义中都包含缺省参数同样是不合法的:

缺省值必须是常量或者全局变量。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 📌缺省参数的概念
  • 📌缺省参数的分类
    • 🎏全缺省参数
      • 🎏半缺省参数
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档