C++入门:命名空间namespace,cin,cout,缺省参数,函数的重载

namespace本质上是定义了一个命名空间域

通过创建命名空间域可以预防变量的冲突问题

命名冲突时,编译器会首先从局部中找,然后从全局中找,但是不会从命名空间中找

eg.

::符号和命名空间

:: 是域作用限定符

就可以访问namespace bit中的rand了,否则就默认找局部或全局的rand

调用命名空间中的结构体

命名空间中可以定义变量,函数等,也可以定义其他命名空间

对于不同头文件来说,可以设置相同名字的命名空间,他们会自动合成成一个命名空间

但是两个头文件中不能有同名的函数(因为在同一个域内)

展开命名空间

对于命名空间中的封装的内容,不能省略前缀xx::xx

如果要省略,必须using namespace(展开命名空间)

之后使用的内容就会首先从局部中找,然后同时从全局中找和命名空间中找

对于某个使用频率较高的内容,可以单独展开某一个

eg.

cin,cout

cin和cout被包含于c++的库的命名空间(std)中,因此在使用他们时需要加前缀std::

但是cin和cout的使用频率很高,为了方便,可以using namespace std来省略std::

或者指定展开cin和cout

using std::cout
using std::cin
using std::endl

但是cin和cout的效率要比printf和scanf低一点

缺省参数

在函数设置形参时可以赋值,如果调用该函数时没有传参,则会用缺省参数初始化,

如果正常传参,就用传入的参数初始化

缺省参数可以有多个

eg.

全缺省

半缺省

规定只能从右往左缺省,也不能跳跃着缺省

此时函数的调用就有很多中方式了

但是函数传参必须按顺序传入,不能跳过前面的参数直接传入后面的参数

缺省参数不能同时声明和定义,缺省参数最好在声明时给

函数的重载

对于c语言,在同一作用域中不允许同名的函数同时存在,否则函数名会冲突

但是在c++中,在同一作用域中可以存在同名的函数,叫做函数的重载

但是,函数的重载要求函数的参数不同(类型,数量)(返回值不同不构成函数的重载)

在调用函数时,编译器会根据传入参数的个数或类型来调用相应的函数

C++支持函数重载的原因

调用函数的本质是调用函数的地址(函数中执行的首个语句的地址(类似于数组的地址))

当包含头文件和源文件时,编译器执行程序时,先展开头文件,经过一定流程,然后检查语法,生成汇编代码,但此时由于头文件中只有函数的声明,没有定义,所以无法找到函数的地址(首个语句的地址)

因此需要在编译器进行链接时查找函数的地址

在编译器进行链接时,

c语言直接用函数的名字去查找函数

c++直接用修饰(参数的类型,个数等)后的函数的名字去查找

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

瑞吉外卖实战学习--11、分类管理的列表分页查询

分类管理的列表分页查询 前言1、创建接口2、基于分页组件来实现的 前言 通过前端接口可以看到请求和传递的参数&#xff0c;本文章是基于mybatisPlus的分页插件来实现的 1、创建接口 GetMapping("/page")public R<Page> page(int page,int pageSize){ // …

翻译: 硅谷软件工程师面试:准备所需的一切

没有人有时间去做成百上千道LeetCode题目&#xff0c;好消息是你实际上并不需要做那么多题目就能够在FAANG公司找到工作&#xff01; 我曾经在Grab工作&#xff0c;这是东南亚的一家共享出行公司&#xff0c;但我对工作感到沮丧&#xff0c;想要进入FAANG公司&#xff0c;但我…

分布式唯一ID 雪花算法

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 算法具体介绍 雪花算法是 64 位 的二进制&#xff0c;一共包含了四部分&#xff1a; 1位是符号位&#xff0c;也就是最高位&#xff0c;…

unity学习(78)--unity调试--长痛不如短痛

1.在vs2022中&#xff0c;工具--获取工具与功能。 2. 安装图中工具&#xff0c;原来我早就安装了。 3 f9下断 同时点击图中按钮 vs此时变为如下状态 unity中出现如下提示&#xff1a; 4 在unity中运行游戏&#xff0c;vs这边确实成功断住了&#xff01;

【机器学习300问】61、逻辑回归与线性回归的异同?

本文讲述两个经典机器学习逻辑回归&#xff08;Logistic Regression&#xff09;和线性回归&#xff08;Linear Regression&#xff09;算法的异同&#xff0c;有助于我们在面对实际问题时更好的进行模型选择。也能帮助我们加深对两者的理解&#xff0c;掌握这两类基础模型有助…

网工内推 | 售前专场,需熟悉云计算技术,上市公司,提成高

01 神州数码 招聘岗位&#xff1a;售前工程师 职责描述&#xff1a; 1.负责所在区域华为IT产品线&#xff08;服务器、存储、云、虚拟化&#xff09;的售前技术支持工作&#xff0c;包括客户交流、方案编写、配置报价、投标支持、测试等&#xff1b; 2.与厂商相关人员建立和保…

篮球竞赛预约平台的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

Redis缓存设计与性能优化【缓存和数据库不一致问题,解决方案:1.加过期时间这样可以一段时间后自动刷新 2.分布式的读写锁】

Redis缓存设计与性能优化 缓存与数据库双写不一致 缓存与数据库双写不一致 在大并发下&#xff0c;同时操作数据库与缓存会存在数据不一致性问题 1、双写不一致情况 2、读写并发不一致 解决方案&#xff1a; 1、对于并发几率很小的数据(如个人维度的订单数据、用户数据等)&a…

集成百兆,千兆,万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用

Hqst华轩盛(石门盈盛)电子导读&#xff1a;集成百兆&#xff0c;千兆&#xff0c;万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用 一 ﹑集成百兆&#xff0c;千兆&#xff0c;万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用前景 近年…

C++算法——滑动窗口

一、长度最小的子数组 1.链接 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 2.描述 3.思路 本题从暴力求解的方式去切入&#xff0c;逐步优化成“滑动窗口”&#xff0c;首先&#xff0c;暴力枚举出各种组合的话&#xff0c;我们先让一个指针指向第一个&…

怎样下载电脑网页上的视频,免费教你一个简单方法!

说起电脑网页上下载视频&#xff0c;如果你有想把一些比较好看的视频下载下来后面再看。又或者想下载视频作为剪辑的素材。然而如果没有掌握下载的方法&#xff0c;今天就大家分享一下这个简单的方法&#xff01; 我来为你揭示一个无需额外软件的网页视频下载秘诀&#xff0c;只…

YOLOv8结合SCI低光照图像增强算法!让夜晚目标无处遁形!【含端到端推理脚本】

这里的"SCI"代表的并不是论文等级,而是论文采用的方法 — “自校准光照学习” ~ 左侧为SCI模型增强后图片的检测效果,右侧为原始v8n检测效果 这篇文章的主要内容是通过使用SCI模型和YOLOv8进行算法联调,最终实现了如上所示的效果:在增强图像可见度的同时,对图像…