【C++入门】C++为什么要有缺省参数

在这里插入图片描述

👦个人主页:@Weraphael
✍🏻作者简介:目前学习C++和算法
✈️专栏:C++航路
🐋 希望大家多多支持,咱一起进步!😁
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注✨


前言

本章是补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的。

一、缺省参数的概念

缺省参数是 声明或定义函数 时为函数的 形参指定一个缺省值(默认参数)。

在这里插入图片描述

如上所示:在调用该函数Func时,如果没有指定实参,则采用该形参的缺省值;否则使用指定的实参。

二、缺省参数的分类

2.1 全缺省参数

顾名思义,就是函数所有的形参都给缺省值。

在这里插入图片描述

2.2 半缺省参数

半缺省就是部分形参给定缺省值。

在这里插入图片描述

2.3 几个需要注意的点

  1. 缺省参数必须从 右往左依次来给出,不能间隔给,因为实参是从左向右传给形参的。如下图所示,由于函数func第三个参数没有缺省值,导致func(1, 2)没有实值传给形参c,因而报错。
    在这里插入图片描述
  2. 缺省参数不能在函数声明和定义中同时出现

在这里插入图片描述

  • 为什么声明和定义不能同时缺省呢?

原因是:如果定义和声明的缺省值不同,那编译器就无法确定到底该用那个缺省值

  • 那么问题又来了,是定义给缺省值还是声明给缺省值呢?

声明给缺省值。原因是:因为代码在预处理阶段,头文件test.h就会在test.cpp文件中展开,然后在编译阶段就会进行语法检查,如果函数声明没有缺省值,就会报错。

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

三、缺省参数的用途

可能会在一些初始化函数中有比较大的用途

假设现在要初始化一个动态的栈,如下图所示

在这里插入图片描述

正常的话我们可以写出以上的代码。但是如果现在我明确要插入1000个数据,但是以上代码会导致每次都要扩容(规定一开始的容量为4),效率也就不高。那有的人想,既然我知道要插入1000个数据,也就可以写出以下代码

在这里插入图片描述

以上代码就完美解决了扩容的消耗。但是在平时写代码时,我们怎么可能明确知道要插入多少数据。有的人想,我可以让DefaultCapacity大一点,但是给大了会导致内存空间的浪费,给小了又要扩容。因此,就可以使用缺省参数来解决部分的问题

在这里插入图片描述

虽然缺省参数这种方法解决了空间浪费的问题,但还会存在一些扩容的消耗。但是扩容的消耗往往会比浪费空间好的多。

五、总结

缺省参数是指在定义函数时给某个参数设置一个默认值,当函数被调用时,如果没有传递该参数,就会使用默认值。缺省参数可以简化函数的调用,避免繁琐的参数传递过程,同时也提高了函数的灵活性。

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值