【C++】入门二

news2024/11/20 0:39:29

下面我们说一下缺省参数,那么什么是缺省参数呢?就是说在定义或者声明函数时给形参赋予一个确定的值(也叫缺省值),那么当我们调用这个函数的时候,就可以不传值也可以传值,传值的话缺省值就没作用了,不传值的话就按缺省值去参与函数的运行,下面是一个简单的例子

#include<iostream>
using namespace std;
void Func(int a = 10, int b = 20) {
	cout << a + b << endl;
}
int main() {
	Func();//30
	Func(1, 2);//3
	return 0;
}

这就是一个简单的例子,我们在调用函数时既可以传值也可以不传值,函数的处理方式是不一样的
缺省函数可以分为全缺省和半缺省,顾名思义,全缺省就是形式参数全都有缺省值,我在调用函数的时候可以完全不传实参,就像上面的例子中的第一个调用一样;半缺省就是形参部分有缺省值,但谁有缺省值也是有规则的,规则是给缺省值要从右往左连续给,这也是为了减少传参时候的争议。在传参的时候就要给没缺省值的参数传参。就比如下面这样

#include<iostream>
using namespace std;
void Func(int a , int b = 20) {
	cout << a + b << endl;
}
int main() {
	Func(1);//21
	return 0;
}

另外还要提的一个点就是如果一个函数的声明和定义分离时,缺省值只能在声明给,不能在定义给

#include<iostream>
using namespace std;
void Func(int a=10, int b=20);
int main() {
	Func();
	return 0;
}
void Func(int a, int b ) {
	cout << a + b << endl;
}

下面说一下函数重载,我们知道,在C语言中是不支持函数重名的,这就导致我们在完成一些任务时很烦,所以呢,C++就引入了函数重载这个概念,意思就是允许函数重名的存在,但是它们的参数一定是不同的,这里的不同可以包括参数数量,参数类型等等,对于返回值没有要求,下面也是举一个函数重载的例子

#include<iostream>
using namespace std;
void Add(int a, int b) {
	cout << a + b << endl;
}
void Add(double a, double b) {
	cout << a + b << endl;
}
int main() {
	Add(1, 2);//3
	Add(1.1, 2.2);//3.3
	return 0;
}

在执行函数时,编译器会匹配参数的类型从而选到合适的函数,第一个就会默认调用第一个函数,因为它们的参数类型是匹配的,第二个同理。
不知道大家有没有想过,为什么C++支持函数重载呢?或者说本质上C++是通过什么去实现的呢?
我们知道,C语言或C++从我们写的代码到形成可执行程序是要经历几个步骤的,有预处理,编译,汇编(转换成二进制的机器码)和链接几个过程,在编译阶段,只要编译器能找到一个函数的声明就能通过,它不需要知道函数的地址(所以当我们在只写函数声明不写定义的时候,编译器报的是链接错误),
在这里插入图片描述

而是在链接这个阶段才需要知道函数的地址,那么怎么找到这个地址呢?C语言就是通过函数名,而C++还得加上函数的参数才能找到,在windows下也可以看见
下面是分别在C和C++下的报错情况
在这里插入图片描述
在这里插入图片描述
上面的C就只跟函数名有关系,下面的C++的中间的那群“乱码”就是C++下的对于函数名的修饰,在Linux环境下是这样的:_Z 函数名字符个数 函数名 参数首字母

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

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

相关文章

企业月结快递管理教程

什么是月结快递&#xff1f;员工可能不清楚&#xff0c;但是企业行政人员应该很熟悉。各大快递公司为了留住商企这些大客户&#xff0c;推出了月结协议寄件&#xff0c;企业可以和快递公司签订月结协议&#xff0c;员工寄件不需要当场结算快递费&#xff0c;而是将快递费挂在企…

Qt HTTP 摘要认证(海康球机摄像机ISAPI开发)

接到一个需求是开发下海康的球机,控制云台,给到我的是一个开发手册,当然了是海康的私有协议 ISAPI开发手册https://download.csdn.net/download/qq_37059136/88547425关于开发这块读文档就可以理解了,海康使用的是摘要认证,当然了海康已经给出使用范例 通过libcurl就可以直接连…

Python学习笔记--自定义元类

四、自定义元类 到现在&#xff0c;我们已经知道元类是什么鬼东西了。 那么&#xff0c;从始至终我们还不知道元类到底有啥用。 只是了解了一下元类。 在了解它有啥用的时候&#xff0c;我们先来了解下怎么自定义元类。 因为只有了解了怎么自定义才能更好的理解它的作用。…

es使用客户端,“grunt” 不是内部或外部命令,多种解决方法

”grunt“不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 4、问题排查 查看node的安装根目录 npm root -g 在运行grunt -version还是不行 网上找了很多&#xff0c;给出正确解决方案的没几个&#xff0c;所以自己摸索&#xff0c;最后确定了加环境变量的解…

python使用selenium webDriver时 报错

可能原因和解决&#xff1a; 1. python 解释器 ----> 设置 2. 浏览器版本 与 浏览器驱动版本不一致 ----> 安装同一版本的 (下载chromedriver | 谷歌驱动更高版本的测试版) 参考&#xff1a;Python使用Selenium WebDriver的入门介绍及安装教程-CSDN博客 Selenium安…

刷题学习记录(攻防世界)

wife_wife 一拿到题目就提示这题不用爆破 进入环境得到的是一个登录框 随便试了一下登录账户密码会提示错误&#xff0c;那就去注册账户&#xff0c;注册的账户还有注册管理员的选项 先注册普通用户234&#xff0c;注册好后登录 这样就得到flag&#xff0c;但是提交是错误的&a…

Linux设置禁止SSH空密码登录

为什么要禁止SSH空密码登陆&#xff1f; 禁止SSH空密码登录的原因是出于安全考虑。如果允许使用空密码进行SSH登录&#xff0c;那么任何人都可以通过尝试使用空密码来尝试登录到系统&#xff0c;从而获取系统的访问权限&#xff0c;这显然是非常不安全的。 此外&#xff0c;使…

FullCalendar日历插件说明文档

一般标准配置 属性描述默认值header设置日历头部信息。 如果设置为false&#xff0c;则不显示头部信息。包括left&#xff0c;center,right左中右三个位置&#xff0c;每个位置都可以对应以下不同的配置&#xff1a; title: 显示当前月份/周/日信息 prev: 用于切换到上一月/周…

蓝桥杯 map

map 代码示例 #include<iostream> #include<map> using namespace std; int main(){//创建并初始化mapmap<int,string> myMap{{1,"Apple"},{2,"Banana"},{3,"Orange"}} ;//插入元素myMap.insert(make_pair(4,"Grapes&qu…

Simulink 自动代码生成电机控制:模型预测控制(MPC)模块使用总结(2)

目录 设置预测范围对系统的影响 设置输入输出约束对系统的影响 设置权重对系统的影响 调整Close-Loop Performance 和State Estimation效果 检查MPC设计是否合理 总结 设置预测范围对系统的影响 预测范围越小&#xff0c;响应越快&#xff0c;预测性能越差&#xff0c;系统稳…

Javascript if 语句使用详解

Javascript if 语句使用详解 目录 Javascript if 语句使用详解 一、if语句 二、if……else语句 三、if……else if语句 if语句是使用最为普遍的条件选择语句&#xff0c;每一种编程语言的if语句都差不多。if语句类型共有3种&#xff1a; &#xff08;1&#xff09;if语句&…

黔院长 | 何为风邪?

中医上所说的风&#xff0c;也称风邪&#xff0c;是指受到外界侵犯&#xff08;外邪&#xff09;而感得风寒、风热、风湿等症状&#xff0c;导致人的免疫力下降。寒、湿、燥、暑、热等都属于外邪&#xff0c;多依附于风而入侵人体&#xff0c;因此风邪更多的是指一种致病因素。…

LED裸机

关于STM32的GPIO的初始化&#xff1a; 初始化&#xff1a; 时钟&#xff1b;输出/输入功能、上拉、速度等等&#xff1b;设置复用功能等等 回顾GPIO和IO&#xff1a; GPIO&#xff1a; 通用IO口。嵌入式系统中常常有数量众多&#xff0c;但是结构却比较简单的外部设备/电路&a…

Python系列:如何提高python程序代码的健壮性

前言 在编程的时候,我们难免会遇到一些不可靠的情况,比如网络请求失败,数据库连接超时等等。这些不确定性会让我们的程序容易出现各种错误和异常。那么如何来增加程序的容错性和健壮性呢? 可能大多数人会想到使用try except来进行异常捕捉进行失败重试(Retry)。虽然try-esc…

lvgl 画好一个圆弧arc 要了解的相关知识

目录 一、概述 1. css盒子模型示意图2. 圆弧的理解对象3. lvgl 版本 二、功能细节 1. 圆弧的角度 1.1 圆弧的0度在哪里&#xff1f;1.2 设置圆弧角度的1.3 设置圆弧的背景角度 2. 圆弧的半径3. 圆弧的圆角 3.1 设置圆弧的圆角 效果如下&#xff1a; 4. 圆弧的宽度 4.1圆弧主体…

基于SSM的宠物医院管理系统

基于SSM的宠物医院管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringMyBatisSpringMVC工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 后台 摘要 随着人们对宠物健康关注的增加&#xff0c;宠物医疗服务的需求也…

云端力量:探索亚马逊云服务器,提升您的业务无限可能

文章目录 前言亚马逊云服务器简介亚马逊云服务器的优势使用步骤Amazon EC2 实例类型常见问题 总结 前言 随着大数据、人工智能和物联网等技术的飞速发展&#xff0c;企业对于高效、灵活和可扩展的计算需求日益增强。在这样的背景下&#xff0c;亚马逊云服务器 以其卓越的性能、…

TSINGSEE青犀视频平台EasyCVR如何搭建自然保护区视频监控系统

随着经济的发展与城市化进程&#xff0c;很多国家自然保护区不断被破坏&#xff0c;为了对国家自然保护区进行全面管理&#xff0c;加大保护区的防护管理力度&#xff0c;人工管理工作量十分繁重&#xff0c;并会存在一些漏洞。因此在国家自然保护区建立一套完整的视频监控系统…

(免费)双相情感障碍筛查MDQ 在线测试双向情感障碍

MDQ用于筛查双相障碍&#xff0c;主要包含13个关于双相障碍症状的是非问题&#xff0c;当前测试采用的量表为2010年杨海晨博士翻译版。该量表为目前世界范围内最常用的双相障碍筛查量表&#xff0c;目前在精神科门诊最为常用的量表之一。 双向情感障碍筛查量表&#xff0c;也叫…

提取纯色马赛克

​​​​​​ 图像预处理 将彩色图像加载到内存。 转换图像为灰度图像&#xff0c;以简化处理。 对灰度图像应用二值化处理&#xff0c;将图像中的纯色区域分为前景和背景。这可以使用阈值处理来完成。 轮廓检测 使用轮廓检测算法&#xff0c;例如OpenCV的 findContours 函数&…