C++初阶之缺省参数

目录

前言

缺省参数

1.缺省参数的概念

 2.缺省参数的分类

全缺省参数

半缺省参数


前言

今天小编继续给大家带来C++的内容,那么今天小编给大家讲解的就是有关C++中缺省参数的介绍。


缺省参数

1.缺省参数的概念

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

参则采用该形参的缺省值,否则使用指定的实参。

那么在这里具体的意思是什么呢?小编这里给大家简单举一个例子说明一下

int Add(int a = 10, int b = 20)
{
	return  a + b;
}

int main()
{

	int ret = 0;
	//这里我们先看我们没传参的情况下的ret值是多少
	ret = Add();
	cout << ret << endl;
	//这里我们传一个参的情况下的ret值是多大
	ret = Add(1);
	cout << ret << endl;
	//然后我们这里传两个实参,我们观察一下具体情况
	ret = Add(1,4);
	cout << ret << endl;
	return 0;
}

对于上面函数,我们对其形参赋值了一个缺省值,那么我们一共有三种调用情况,首先我们是不对该进行传参操作,那么以上我们的两个参数都是按缺省值进行参与函数的运行,那么我们实际上应该得到的值应该是30,第二种情况就是,我们传一个参数,那么我们得到的是第一个值按我们传的参数,另外一个数按我们的缺省值进行计算,那么我们这里得到的值应该就是21,对于第三种情况由于我们都传了实参,那么该得到的值就是两个实参相加,也就是5

那么我们运行一下行代码看一下运行情况:

 2.缺省参数的分类

对于缺省参数的分类小编这里直接给大家举两个例子,让大家合理的理解一下。

全缺省参数

int Add(int a = 10, int b = 20)
{
	return  a + b;
}

半缺省参数

int Add(int a , int b = 20)
{
	return  a + b;
}

这里大家应该发现了,我们这里的分类依据就是我们函数的形参是否全部赋值了缺省值,虽然这里的定义是比较简单的,但是这里有几个细节也是我们大家需要注意的。

1. 半缺省参数必须从右往左依次来给出,不能间隔着给

这里我给大家简单的解释一下,我们在给函数传参的时候,我们是按从左往右传参的,如果上面的函数我们给a赋值缺省值,但是不给b赋值缺省值,那么这里我们的传参就只能出现一种情况,也就是将函数的前后全部赋值,为什么这么说呢?首先有个前提,我们的函数传参是不能指定传参的,但是我们不传参,由于这个是半缺省参数,那么我们就会报错,但是我们只传一个值,那么接受到值的变量就是a,对于b我们并没有接收到值,那么这里也会报错,所以我们只能全部传参,那么我们使用缺省参数也就没有了意义,但是我们从右往左依次传参就避免了这种情况。


2. 缺省参数不能在函数声明和定义中同时出现

 对于这里我需要给大家简单的举个例子说明一下:

这里我们分别在一个头文件进行声明,在一个源文件中进行定义,那么这里我们用主函数调用函数我们观察结果:

 我们会发现这里说我们重定义了默认参数,那么按照C++语言的规则我们这里是不能放在一起定义的,所以这里小编给大家的建议是放在声明中进行定义即可。

3. 缺省值必须是常量或者全局变量
4.这里我们需要注意的是缺省参数是C++独有的,C语言并没有有关缺省参数的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半只牛马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值