C++初阶语法——缺省参数

前言:在C语言中,声明或定义函数时形参仅为类型和变量名组成,而在C++中我们可以在声明和定义函数时为参数指定一个缺省值。
缺省参数在后面学习默认成员函数中的构造函数和析构函数也很重要。

这里写目录标题

  • 缺省参数
    • 1.什么是缺省参数
    • 2.全缺省参数
    • 3.半缺省参数
    • 4.缺省参数的使用场景
  • 总结几个缺省参数的重点:

缺省参数

1.什么是缺省参数

缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则使用该形参的缺省值,否则使用该实参。
重中之重:缺省参数不能声明和定义同时给,因为假如声明和定义给的缺省值不一样,编译器就分不清到底该使用哪一个缺省值。因此C++规定,声明给缺省值,定义不给。
缺省值必须是常量或者全值变量

如下所示:

void Func(int a = 10)
{cout << a << endl;
}
int main()
{Func();   //  10Func(5);  //  5return 0;
}

2.全缺省参数

顾名思义,就是给函数的参数都指定缺省值
需要注意的是:实参只能从左往右给。

这里是引用

3.半缺省参数

半缺省参数并不是指给函数一半的参数指定缺省值,毕竟假如有3个参数该怎么办呢?总不能给1.5个参数指定缺省值吧(笑)
半缺省参数指的是给函数的部分参数指定缺省值,但不是全缺省参数。因此半缺省至少传一个实参,而全缺省可以一个实参都不传。
这里有一个重点:必须从右往左给参数指定缺省值

在这里插入图片描述

4.缺省参数的使用场景

这里举个例子,给读者一点启发。

在C语言实现栈中,我们一般开始时都是给栈开辟4个动态内存空间,但是假如我们需要开辟10个呢,或许有读者会说可以在其它接口扩容,但是扩容是要代价的。或者有读者会说可以使用宏定义来控制初始开辟的动态内存空间,但是假如我们创建了两个栈,一个需要开辟10,一个需要开辟100动态内存空间呢?
这种情况下,缺省参数就有了用武之地。

struct Stack
{int* a;int capacity;int top;
};//void StackInit(Stack* ST) 常规写法
void StackInit(Stack* ST, int n = 4) //多创建一个n变量,给缺省值
{ST->a = (int*)malloc(sizeof(int) * n);ST->top = 0;ST->capacity = 0;
}
int main()
{Stack s1, s2;StackInit(&s1, 10); //初始化要多少就给多少,是不是很方便?StackInit(&s2, 100);return 0;
}

总结几个缺省参数的重点:

1.缺省值不能声明和定义同时给。
2.声明给,定义不给。
3.实参只能从左往右给。
4.缺省值必须从右往左给函数的参数。
5.缺省值只能是常量或者全局变量。

文末BB:对哪里有问题的朋友,尽管在评论区留言,若哪里写的有问题,也欢迎朋友们在评论区指出,博主看到后会第一时间确定修改。最后,制作不易,如果对朋友们有帮助的话,希望能动动你们发财的小手给点点赞和关注.
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380821.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

干货|安服工程师技能手册详细总结

目录 &#xff08;一&#xff09;基础网络必备技能 &#xff08;二&#xff09;常见工具的使用 &#xff08;三&#xff09;渗透测试技能 &#xff08;四&#xff09;漏扫技能(报告&#xff0c;修复&#xff0c;独立支撑能力) &#xff08;五&#xff09;应急响应 &#xff08;…

网络安全-安全服务工程师-技能手册详细总结(建议学习収藏)

0x00 技能大纲 &#xff08;一&#xff09;基础网络必备技能 &#xff08;二&#xff09;常见工具的使用 &#xff08;三&#xff09;渗透测试技能 &#xff08;四&#xff09;漏扫技能(报告&#xff0c;修复&#xff0c;独立支撑能力) &#xff08;五&#xff09;应急响应 &am…

养猫日记之如何获得一只喵

坐标北京 第一周 最近这段时间一直想养一只猫咪&#xff0c;就开始各种查哪有卖猫的。 周末先是去了三旗百汇的花鸟鱼虫市场&#xff0c;里面就两三家卖猫的店&#xff0c;其他都是卖鱼的&#xff0c;养的几批鱼全是在那买的…感觉几家店里的猫都太少了&#xff0c;没有挑上合…

【美国大学生数学建模比赛】2020C题(总结和原创参赛论文)百度云请自取

最新想法&#xff1a; 本学期选修了下大数据&#xff0c;发现其实本题的解法还涉及到数据库、大数据各个层次数据处理和分布式数据流blabla&#xff0c;而之前那几天美赛做的还停留在最基础的数据处理层&#xff08;而且我现在觉得如果要做大的话不应该在这个层里面进行深度学…

数学建模之论文

一篇完整的数模论文 包括摘要 (最重要)、问题重述、模型假设和符号说明、模型建立与求解 (最长)、模型的优缺点与改进方法、参考文献和附录。 1. 摘要 (最重要) 论文研究的问题 使用的方法 得到的结果 每一部分的大致步骤。 2. 问题重述 将题目简述一遍即可&#xff0c…

CVPR2023论文及代码合集来啦~

以下内容由马拉AI整理汇总。 下载&#xff1a;点我跳转。 狂肝200小时的良心制作&#xff0c;529篇最新CVPR2023论文及其Code&#xff0c;汇总成册&#xff0c;制作成《CVPR 2023论文代码检索目录》&#xff0c;包括以下方向&#xff1a; 1、2D目标检测 2、视频目标检测 3、…

美赛BOOM数学建模4-2微分方程传染病预测模型

注明&#xff1a;本文根据数学建模BOOM网课简单整理&#xff0c;自用 • 指数传播模型与SI模型 ❑从最简单的指数传播模型说起 ❑ 传染病预测问题 • 不同类型传染病的发病机理和传播途径各有特点 • 有的传染病&#xff0c;在得过一次后可获得免疫力&#xff0c;但有的则不会 …

【本科生科研入门】大学生如何撰写科研项目申报书和答辩PPT

【本科生科研入门】大学生如何撰写科研项目申报书和答辩PPT 大学生可以参加哪些科研项目项目类别国家级省级校级 写申报书写PPT 大学生可以参加哪些科研项目 从我的经历来说&#xff0c;大学生主要能够参加的科研项目分为&#xff1a; 项目类别 国家级 国级大学生创新创业训…

【计算机毕业设计】138宠物领养系统的设计与实现

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。互联网的发展&#xff0c;离不开一些新的技术&#xff0c;而…

MICCAI2019论文分享 PART①

刚刚结束的 MICCAI2019 会议的论文集分为6个部分&#xff0c;这段时间刷了一遍 Part I&#xff0c;在这儿和大家做一个简单的分享交流 由于本人主要专注于分割领域和半监督弱监督等学习策略&#xff0c;下面给出的综述可能多涉及该方向。选出的文章主要突出其中的闪光点&#…

PPO算法经典论文阅读

PPO算法经典论文阅读 PPO算法是强化学习中的经典算法,其全称为近端策略优化(Proximal Policy Optimization)。 1.引言 ​ 首先在论文的引言部分给出了经典的强化学习算法的不足之处:许多的经典强化学习算法在大型的模型、数据采样效率、鲁棒性(无需手动超参调整)上都有很大的提…

四年的自学,通过这些学习工具拿到了大厂offer,分享给大家

作为非科班的我&#xff0c;一路打怪升级&#xff0c;不仅抱得美人归&#xff0c;还学了不少新的技术&#xff0c;那么这七年过来&#xff0c;我都收藏了哪些网站和工具呢&#xff0c;其中包括求职&#xff0c;电子书搜索&#xff0c;在线教程学习等&#xff0c;下面全部分享给…

从学习2021美赛O奖论文到获得2022美赛M奖——论文精读经验分享

目小录&#x1f95e; 一、前小言&#x1f361;二、前人栽树---2021A题O奖论文精读经验&#x1f4da;1.美术建模--- 图形结合&#xff0c;事半功倍&#x1f379;2.语文\英文建模---标题的小心思&#x1f35f;3.数学建模---逻辑严谨&#xff0c;面面俱到&#x1f950;1&#xff0…

2020美赛F奖论文(一):摘要、绪论和模型准备

全文&#xff1a; 2020美赛F奖论文&#xff08;一&#xff09;&#xff1a;摘要、绪论和模型准备2020美赛F奖论文&#xff08;二&#xff09;&#xff1a;传球网络模型&#xff08;PNM&#xff09;的建立和影响因子分析2020美赛F奖论文&#xff08;三&#xff09;&#xff1a;足…

MICCAI2021论文合集

2021年的MICCAI论文合集来了&#xff01;&#xff01;&#xff01; 在官网下完了以下合集&#xff1a; 百度网盘链接&#xff1a; 如果有人搞Alzheimer disease classification的可以一起交流&#xff01;&#xff01;&#xff01; 链接2022.08.19更新&#xff1a; 链接&am…

喵咪制造机:生成式对抗网络的花式画喵大法

了解更多技术文章请点击原文链接 2012年&#xff0c;吴恩达和Jeff Dean用Google Brain的1.6万个CPU所打造的大型神经网络&#xff0c;在被1000万YouTube视频中的猫图像训练三天后&#xff0c;自己画出了一张模糊的猫脸图。这是普通公众第一次领略到深度学习的威力。 而后随着Al…

MoCo 论文详解

目录 一、自监督学习和对比学习1、自监督学习2、对比学习 二、MoCo 论文1、模型流程2、本文创新点1&#xff09;队列作为字典2&#xff09;动量更新 3、与end-to-end和memory bank的比较1&#xff09;end-to-end2&#xff09;memory bank 4、其他技术细节1&#xff09;损失函数…

米兰大学发布论文与猫咪叫声数据集,分类喵喵叫

来源&#xff1a;HyperAI超神经本文约1000字&#xff0c;建议阅读5分钟 米兰大学计算机系的研究团队&#xff0c;试图用隐式马尔科夫方法将猫咪在不同环境状态下的喵喵叫识别出来&#xff0c;他们还真的成功了。关键词&#xff1a;声音识别 动物AI 机器学习 深度学习 米兰大学的…

【枚举】CF1660 D

Problem - 1660D - Codeforces 题意&#xff1a; 思路&#xff1a; 思路巨简单&#xff0c;代码也wa了很多发才过&#xff0c;都是因为细节.... 很显然&#xff0c;要根据0分段处理 对于每一段&#xff0c;枚举去掉左边段还是右边段&#xff0c;左边段是 l 到第一个负数&am…

Unreal Engine内嵌插件WebBrowser从HTML页面到Blueprint通讯

Unreal Engine内嵌插件WebBrowser从HTML页面到Blueprint通讯 问题解决办法将引擎内插件拷贝到工程目录下修改插件代码蓝图接口使用 问题 Unreal Engine内嵌WebBrowser插件可以通过调用ExecuteJavascript接口执行js代码&#xff0c;但无法从JS调用Blueprint蓝图函数 解决办法 …