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

举报
修修修也 发表于 2024/03/30 13:02:06 2024/03/30
【摘要】 本文内容包括:缺省参数(默认参数)的概念,缺省参数(默认参数)的分类等相关内容。

📌缺省参数的概念

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

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

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,如果函数的所有参数都指定了缺省值,那么该函数就被称为全缺省参数:

void Sum(int a = 1, int b = 1, int c = 2)
{
    cout << a + b + c << endl;
}



🎏半缺省参数

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

void Sum_2(int a , int b = 1, int c = 2)
{
    cout << a + b + c << endl;
}


需要注意的是:

1. 半缺省参数必须从右往左依次来给出,不能间隔着给。如下四种缺省函数的定义都是不合法的!
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)//不符合不能间隔
{
	
}
2. 缺省参数不能在函数声明和定义中同时出现。像下面这种声明和定义中都包含缺省参数同样是不合法的:​编辑3. 缺省值必须是常量或者全局变量。



结语

希望这篇缺省函数简介能对大家有所帮助,欢迎大佬们留言或私信与我交流.

学海漫浩浩,我亦苦作舟!关注我,大家一起学习,一起进步!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。