【C++】C++入门(二)

news2025/1/12 22:47:44

       

5a2585dded9b416fb4ea58637b42ed39.png

  Yan-英杰的主页

悟已往之不谏 知来者之可追  

C++程序员,2024届电子信息研究生


目录

1.缺省参数(默认参数)

2.函数重载

        a.函数重载的概念

                问题:

                为什么C语言无法重载,而C plus plus 可以重载?

                C plus plus是如何做到函数重载的?

      想法:

        b.引用-取别名


1.缺省参数(默认参数)

        缺省参数是声明或定义函数时为函数的参数定一个缺省值,当我们传参时,若未传任何参

数,则使用参数的默认值,默认传参顺序,从左往右

        全缺省:所有传入的参数均有默认参数

void Func(int a = 0,int b = 10,int c = 20)//缺省参数
{
	cout << a << endl;
	cout << b << endl;
	cout << c << endl;
	
}

int main()
{
	Func();//没有传参时,使用参数的默认值
	Func(1);//传参时,使用指定的实参
	Func(1,2);
	Func(10 ,20 ,30);
	return 0;
}

                半缺省:参数可能有几个为参入的参数,默认传参数至少一个

                

void Func1(int a ,int b = 10 ,int c= 20)
{
	cout << a << endl;
	cout << b << endl;
	cout << c << endl;
}

int main()
{
	Func1(10);
	return 0;
}

                定义和实现,缺省参数必须一致,最担心出现的问题,是缺省参数不同,造成报错,缺省参数,声明给缺省,定义不给

2.函数重载

        a.函数重载的概念

                 函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名
函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数
据类型不同的问题。

        问题:

                为什么C语言无法重载,而C plus plus 可以重载?

        C语言

                

void f()
{
	cout <<"f()" << endl;
}

void f(int a = 0)
{
	cout << "f(int a)" << endl;
}

int main()
{
	f();
	return 0;
}

        C plus plus

//函数重载
int Add(int left, int right)
{
	cout << "int Add(int left, int right)" << endl;
	return left + right;
}
double Add(double left, double right)
{
	cout << "double Add(double left, double right)" << endl;
	return left + right;
}
int main()
{
	Add(10, 20);
	Add(10.1, 20.2);
	return 0;
}

        C plus plus是如何做到函数重载的?

C++支持函数名相同,参数不同

        注:只有编译错误和链接错误,汇编不存在错误,一对一进行转换

         想法:

                编译阶段是否能拿到地址?

                无法拿到地址

        b.引用-取别名

                

int main()
{
	int a = 0;
	int& b = a;
	int& c = b;
	int& d = c;

	cout << a << endl;
	cout << b << endl;
	a++;
	b++;
	cout << c << endl;
	cout << d << endl;

	return 0;
}

        引用的指向无法更改,相当于别名

          C++最主要的作用是补充了C语言

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

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

相关文章

【几何数学】【Python】【C++】将线段沿着线段方向延长一定长度,求新的点

p1点和p2点是一条线段的两端&#xff0c;沿着p1指向p2的方向&#xff0c;将线段长度延伸长度x&#xff0c;求延伸后的点ep。如下图&#xff1a; Python代码&#xff1a; import mathdef extend_line_segment(p1, p2, extension_length):"""延伸线段长度并返回…

微信小程序全局数据共享

1.概念 全局数据共享(又叫做&#xff1a;状态管理)是为了解决组件之间数据共享的问题。 2.小程序中共享方案 在小程序中&#xff0c;可使用mobx-miniprogram配合mobx-miniprogram-bindings实现全局数据共享mobx-miniprogram用来创建Store实例对象 mobx-miniprogram-bindings…

改进YOLOv8 | 主干网络篇 | YOLOv8 更换主干网络之 ConvNext | 《纯卷积结构超越 ViTs》

论文地址:https://arxiv.org/pdf/2201.03545.pdf 代码地址:https://github.com/facebookresearch/ConvNeXt 视觉识别的“Roaring 20年代”始于视觉变换器(ViTs)的引入,它很快取代了ConvNets,成为最先进的图像分类模型。另一方面,普通ViTs在应用于一般的计算机视觉任务(…

日撸java三百行day71-73

文章目录 说明BP神经网络1.基础知识3 代码理解3.1 数据的初始化3.2 训练过程 train方法3.3 forward 前向传播函数3.4 backPropagation反向传播函数 说明 闵老师的文章链接&#xff1a; 日撸 Java 三百行&#xff08;总述&#xff09;_minfanphd的博客-CSDN博客 自己也把手敲的…

【Vue2】Vant2上传文件使用formData方式,base64图片转Blob再转File上传

文章目录 前言一、base64转换为 Blob 对象的方法二、使用步骤1.引入工具类js2.编写formData上传方法3.api方法中的request代码 三、实际操作1.html代码2.js代码 总结 前言 vant2上传组件传送门 使用vant2组件中的uploader组件 <van-uploader v-model"fileList" …

打破常规之路,创新永不停歇!ADSCOPE成功斩获2023第十一届TopDigital“年度最佳营销技术公司”奖项!

2023年6月29日&#xff0c;第十一届TopDigital创新营销奖获奖结果正式揭晓&#xff0c;ADSCOPE凭借先进的广告变现技术&#xff0c;创新的变现理念&#xff0c;从海内外657家参赛企业提交的3052件作品中突出重围&#xff0c;成功斩获“TopDigital创新营销奖—年度最佳营销技术公…

el-table多级表头处理方法,了解lebel和prop的真实含义,template的意义,减少全局定义变量。

Element - The worlds most popular Vue UI framework 官网地址 其原理只需要在 el-table-column 里面嵌套 el-table-column&#xff0c;就可以实现多级表头。 要实现的效果如下图所示&#xff1a; <div class"c-table" id"tablePrint"><el-tabl…

【Java-SpringBoot+Vue+MySql】前后端分离项目云端部署

目录 部署环境&#xff1a; 安装MYSQL&#xff1a; 安装Nginx 安装配置JDK 远程连接数据库 前端打包 后端打包 心得&#xff1a; 部署环境&#xff1a; CentOS7.6 MySQL5.7 JDK1.8 Nginx1.8 下载MySQL MySQL :: Download MySQL Community Server (Archived Versions) …

qt Qss 边框渐变

目录 背景渐变 方案一 Qss 方案二 paintEvent函数 方案三 QGraphicsDropShadowEffect投影效果 背景渐变 QT里面背景是可以渐变&#xff0c;其中qlineargradient里面参数意思 spread&#xff1a;渐变方式&#xff08;具体可以查看qt帮助文档搜索PadSpread&#xff09; 坐…

vue2模拟无限级评论

目录 一、效果展示 二、代码展示 2.1、主页面 2.2、评论父页面组件 2.3、评论多级页面(递归组件) 一、效果展示 二、代码展示 2.1、主页面 <template><div><h1>姓名:{{ $store.state.userInfo1.username }}</h1><button:class"{ aacti…

【加密算法】5 种常见的摘要、加密算法

大家平时的工作中&#xff0c;可能也在很多地方用到了加密、解密&#xff0c;比如&#xff1a; 用户的密码不能明文存储&#xff0c;要存储加密后的密文用户的银行卡号、身份证号之类的敏感数据&#xff0c;需要加密传输还有一些重要接口&#xff0c;比如支付&#xff0c;客户…

数据结构和算法的概念以及时间复杂度空间复杂度详解

⭐️ 什么是数据结构&#xff1f; 百度百科给数据结构的定义&#xff1a; 数据结构(Data Structure)是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 数据结构就是数据在内存中的存储方式。 ⭐️ 什么是算法&#xff1f; 百度百…

基于高精度三维机器视觉的新能源汽车锂电池表面缺陷检测

​Part.1 行业背景 ​随着新能源汽车在全球范围内成为焦点发展领域&#xff0c;企业对电池质量控制和检测的要求也变得更加严格。在机器视觉行业迅速发展的背景下&#xff0c;市场上提供了功能强大且种类齐全的3D相机系列&#xff0c;可以满足锂电池从电芯到模组各个工艺和工位…

IAM风险CTF挑战赛

wiz启动了一个名为“The Big IAM Challenge”云安全CTF挑战赛。旨在让白帽子识别和利用 IAM错误配置&#xff0c;并从现实场景中学习&#xff0c;从而更好的认识和了解IAM相关的风险。比赛包括6个场景&#xff0c;每个场景都专注于各种AWS服务中常见的IAM配置错误。 Challenge…

【Docker】云原生利用Docker确保环境安全、部署的安全性、安全问题的主要表现和新兴技术产生的详细讲解

前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 &#x1f4d5;作者简介&#xff1a;热…

Vue键盘事件

1.Vue中常用的按键别名&#xff1a; 回车enter 删除delete&#xff08;捕获“删除”和“退格”键&#xff09; 推出esc 空格space 换行tab&#xff08;特殊&#xff0c;必须配合keydown使用&#xff09; 上up 下down 左left 右right 2.Vue未提供别名的按键&#xff0c;可以使用…

Arduino驱动BH1750模块实现光照强度采集

Arduino驱动BH1750模块实现光照强度采集 简介特征电气参数接线程序结果 简介 BH1750FVI是一个用于I2 C总线接口的数字环境光传感器IC。该IC最适合于获取调节手机液晶显示屏和键盘背光功率的环境光数据。在高分辨率下探测大范围是可能的。(1 - 65535 lx )。BH1750FVI可以应用于…

Matlab 回归分析与预测

统计分析 回归分析与预测 数理统计—回归分析 回归分析类型 回归分析目的 一元线性回归 多元线性回归的案例 %{ [B,BINT,R,RINT,STATS] regress(Y,X) [B,BINT,R,RINT,STATS] regress(Y,X,ALPHA) 参数解释&#xff1a;B&#xff1a; 回归系数&#xff0c;是个向量&…

小程序官方tabbar和自定义tabbar

uniapp官方tabbar&#xff1a; 打开项目中的 pages.json 文件。 在 JSON 对象中添加一个名为 tabBar 的字段&#xff0c;并设置其值为一个对象。 在 tabBar 对象中&#xff0c;配置 color 和 selectedColor 字段来定义 TabBar 的默认颜色和选中项的颜色。示例&#xff1a; …

功放IC 2018和功放IC HX8358A的区别

概述&#xff1a; 2018功放IC&#xff0c;目前在市面的情况是品牌多、杂&#xff0c;芯片的工作电压和喇叭输出功率不统一。经常出现低电压芯片用在高电压的产品上面&#xff0c;导致芯片容易损坏&#xff0c;给用户带来一定的麻烦。但它的销售量可能已超过8002的功放芯片了&am…