C++初阶 入门

news2024/11/16 22:29:52

 

目录

1.用C++的方式写一个Hello World

2.命名空间

2.1什么是命名空间?

2.2使用命名空间

3.C++的输入输出 


前言:C++初阶系列,每一期博主都会使用简单朴素的语言将对应的知识分享给大家,争取让所有人都可以听懂,C++初阶系列会持续更新,上学期间将不定时更新,但总会更的

1.用C++的方式写一个Hello World

#include<iostream>//1
using namespace std;//2
int main()
{
	cout <<"Hello World"<<endl;//3
}

我们逐步逐步的分析这几串代码,#include<iostream>引用对应的流头文件,使得我们的一些输入输出命令可以使用。

而下面这段using namespace std;是什么意思呢?相信不少初学者在老师上课的时候总会有这种疑惑,但老师总会来一句,你们就先用着到时再说这个,这就令人有点膈应。接下来就由博主来给大家讲解一下对应的知识:命名空间

2.命名空间

2.1什么是命名空间?

在我们学习语言的过程中,你们是否想过,未来有一天,我参加了一个项目,项目里有算上你有3个程序员,你们要分模块化进行代码的编写从而实现一款2D像素小游戏,小A他负责装备特性和炫酷技能的编写,小B负责人物之间的交互,而你负责战斗模块的编写。小A在他的代码里写了一个变量叫fight,寓意着战斗力,来直观地让玩家明白装备的差别。而你在你的模块中也写了一个fight,代表着战斗进行的回合数。那么,一旦项目合并在一起,两个fight就会出现冲突,编译器不知道该选择哪个fight进行使用,这时候怎么办呢?在c中这种问题是没办法很好地解决的,只能是你们中的一人选择退让并将对应的变量名进行修改,在C++中就可以通过命名空间的方式来很好地杜绝这一行为。

使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。

2.2使用命名空间

众所周知,C++是基于C进行升级的编程语言,因此在C上的各种代码依然是可以在C++上跑的。如图所示,我们像写C的时候包两个头文件,再定义一个全局变量rand,之后使用printf函数队rand的值进行打印,但在 C上能跑的代码现在就出现了问题,"rand重定义,以前的定义是函数",也就是说,我们的命名与前人在头文件中写的函数名字出现了冲突。这个时候我们就可以使用命名空间来解决问题。

#include<stdio.h>
#include<stdlib.h>
namespace abc
//创建一个名字叫abc的空间
{
	int rand = 10;
}
int main()
{
	printf("%d ", rand);
}

哎,怎么回事啊,怎么是这个奇奇怪怪的东西呀,我不是要打印出10吗?别慌,首先呢这一大串是对应函数的地址,而之所以是对应函数的地址是因为,我们创建命名空间就像是在自己家外建立了一块围墙    有人想进来找东西,那肯定得要有钥匙,而没钥匙自然只能去墙外面找。而编译器在墙外找到了一个叫rand的函数,自然就把它用起来了。

那么我们要怎么才能进入到对应命名空间中取出对应的变量呢?使用域名限定符::即可

空间名+域名限定符+变量名     就可以访问到对应命名空间对应的变量

 这个时候又有小机灵鬼想到了一个超级代码,我在自己的命名空间中再定义一个同名的rand,别问我为什么,我就是想要这么多个rand,好好好,写的好啊。那么这个时候我们要回避命名冲突的问题,我们就可以使用嵌套命名空间的方式,是的,你没有听错,命名空间是可以嵌套的。

访问的方式也大同小异,可理解为先访问abc空间,再访问a(b)空间,再在里面去查找对应的值

超级小机灵鬼还不满意,又问"那么命名空间的名字相同会发什么什么呢?"答案是会合并在一起,这两块空间将会被编译器视为同一块空间,你在里面存放变量,会被存放到同一块空间中。

那么回到最开始,我们的那个using namespace std 是什么意思呢,std是C++官方库定义的命名空间。using namespace std 的含义就是展开std空间的内容,令std库中的内容展开,这样就不需要使用域作用限定符来进入空间,因为空间中的内容已经被展开了。

3.C++的输入输出 

using namespace std讲完以后我们来讲一下C++的输入输出,cout 是console out 的缩写,意思是朝着控制台输出,而<<是流插入运算符,你可以把它看作将数据从右边往左边流入,然后再在控制台输出,那么cout<<"Hello World"就可以看作将Hello World 这个字符串流入到控制台中并打印,而endl 是end line 的缩写,意思是结束这一行,也就是换行。

C++的输出还有一点非常强大,那就是它可以自动识别数据类型,以前我们使用C的时候还得%d  %f %c,现在直接就出来了。

 输入的话用cin,console in 翻译过来就是控制台里面,引申一下就是从控制台中取数据,所以cin>>变量名 便是从控制台中取数据并使对应变量修改成控制台上的数据。

好了,今天的分享到这里就结束了,感谢各位友友的来访和阅读,祝各位友友们前程似锦O(∩_∩)O 

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

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

相关文章

跨境电商迎来全球5日达革命?菜鸟全球化再提速!

近年来&#xff0c;随着全球化进程的加速和跨境电商的蓬勃发展&#xff0c;物流速度成为了电商行业的竞争制高点之一。消费者不再满足于等待数周&#xff0c;甚至数月的国际快递&#xff0c;他们期望能够像本地购物一样迅速收到国际包裹。 在这一背景下&#xff0c;跨境电商物…

众佰诚:开一家抖音小店需要交押金不?

随着电商行业的不断发展&#xff0c;越来越多的商家开始尝试在不同的平台上开设自己的店铺。抖音作为国内最热门的短视频平台之一&#xff0c;也吸引了众多商家的目光。那么&#xff0c;开一家抖音小店需要交押金吗?接下来&#xff0c;我们就来详细了解一下。 首先&#xff0c…

山西电力市场日前价格预测【2023-10-13】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-13&#xff09;山西电力市场全天平均日前电价为228.86元/MWh。其中&#xff0c;最高日前价格为396.88元/MWh&#xff0c;预计出现在18: 30。最低日前电价为0.00元/MWh&#xff0c;预计出…

TCP/IP(十二)TCP的确认、超时、重传机制

一 TCP的确认应答机制 确认应答机制: 每次收到数据 都会 给对端发送一个应答报文(ACK) ① 带重传的肯定确认 确认机制: 超时 重传的 肯定 确认 --> 完成了两个作用,或者说有两个含义1、肯定[正确] 确认小结&#xff1a; 我的确认信息是针对正确数据做确认,而不是错误…

YOLOv5算法改进(2)— 注意力机制介绍(SE、CBAM和CA)

前言:Hello大家好,我是小哥谈。注意力机制是近年来深度学习领域内的研究热点,可以帮助模型更好地关注重要的特征,从而提高模型的性能。注意力机制可被应用于模型的不同层级,以便更好地捕捉图像中的细节和特征,这种模型在计算资源有限的情况下,可以实现更好的性能和效率。…

免费SSL证书

在当今数字化时代&#xff0c;保护用户数据和建立安全连接至关重要。对于网站管理员和拥有者来说&#xff0c;SSL证书&#xff08;Secure Sockets Layer&#xff09;是确保安全的关键工具之一。但是&#xff0c;传统上购买和维护SSL证书可能会带来昂贵的成本和繁琐的流程。幸运…

百度车牌识别AI Linux使用方法-armV7交叉编译

1、获取百度ai的sdk 百度智能云-登录 (baidu.com) 里面有两个版本的armV7和armV8架构。v7架构的性能比较低往往需要交叉编译&#xff0c;v8的板子性能往往比较好&#xff0c;可以直接在板子上编译。 解压到ubuntu里面。这里介绍v7架构的。 2、ubuntu环境配置 ubuntu下安装软件…

学生静态HTML网页作品下载后如何导入到HBuilderX中编辑修改及运行

很多同学编辑网页要求使用HBuilder X软件&#xff0c;下载学生网页设计作品后&#xff0c;不知道如何打开&#xff0c;很多同学反应把HTML中的代码复制到HBuilder X后不显示图片或者跑版。今天STU网页为大家讲解下静态HTML网页作品如何导入HBuilder X中运行。 HBuilder X 导入…

『PyQt5-Qt Designer篇』| 13 Qt Designer中如何给工具添加菜单和工具栏?

13 Qt Designer中如何给工具添加菜单和工具栏? 1 创建默认窗口2 添加菜单栏3 查看和调用1 创建默认窗口 当新创建一个窗口的时候,默认会显示有:菜单栏和状态栏,如下: 可以在菜单栏上右键-移除菜单栏: 可以在菜单栏上右键-移除状态栏: 2 添加菜单栏 在窗口上,右键-创建…

城市排水管网监测方案(新型排水管网智能监测技术)

随着我国城市化进程不断加快,城市的排水管网也日益增长并变得复杂,对其进行实时监测以确保正常运行变得极为重要。针对此需求,基于工业物联网技术的新型智能排水管网监测系统为城市排水管网的运行与维护提供了有效手段。 该智能排水管网监测系统以无线通讯功能强大的SG600工业…

VMware和Debian下载

文章目录 ⭐️写在前面的话⭐️一、VMware二、Debain三、建立虚拟机&#x1f680; 先看后赞&#xff0c;养成习惯&#xff01;&#x1f680;&#x1f680; 先看后赞&#xff0c;养成习惯&#xff01;&#x1f680; ⭐️写在前面的话⭐️ CSDN主页&#xff1a;程序员好冰 目前在…

uniapp + vue3 静态图片引入

方法一 从新定义路径 一定看好你图片的路径 代码 <template><div class"main">Main<img :src"getImg()" alt""></div> </template><!-- 方式一 // <script setup> // let imgName logo.png // cons…

共享WiFi二维码项目如何加盟代理?有哪些注意事项!

随着移动互联网的发展&#xff0c;如今WiFi热点已成为人们日常生活的必需品。而共享wifi二维码项目也渐渐成为了一个非常有前景的共享商业模式。用户可以通过扫共享wifi二维码享受免费的上网服务&#xff0c;而加盟商则可以赚取一定的推广费用&#xff0c;是一种非常理想的商业…

ppt怎么压缩到10m以内?分享ppt缩小方法

在日常工作中&#xff0c;我们常常需要制作和分享PowerPoint演示文稿&#xff0c;然而&#xff0c;有时候文稿中的图片、视频等元素会导致文件过大&#xff0c;无法在电子邮件或其他平台上顺利传输。为了将PPT文件压缩到10M以内&#xff0c;我们可以使用一些专门的文件压缩工具…

EasyRAFT

EasyRaft 介绍 EasyRaft是Raft&#xff08;共识算法&#xff09;的Java实现&#xff0c;主要目的在于提供一种高性能的分布式一致性协议。 覆盖Jraft实现的功能 分布式一致性 分布式一致性 (distributed consensus) 是分布式系统中最基本的问题&#xff0c;用来保证一个分布式…

使用kaliber与imu_utils进行IMU、相机+IMU联合标定

目录 1 标定工具编译 1.1 IMU标定工具 imu_utils 1.2 相机标定工具 kaliber 2 标定数据录制 3 开始标定 3.1 IMU标定 3.2 相机标定 3.3 相机IMU联合标定 4 将参数填入ORBSLAM的文件中 1 标定工具编译 1.1 IMU标定工具 imu_utils 标定IMU我们使用imu_utils软件进行标定…

kepler.gl 笔记:地图样式

1 设置地图样式 2 调整layer的上下顺序 3 地图图层 Label&#xff1a;显示城市、社区等的标签。Road&#xff1a;显示半透明的道路线图层。Border&#xff1a;显示州和大陆边界。Building&#xff1a;显示建筑物轮廓。Water&#xff1a;显示水体。Land&#xff1a;显示公园、山…

Excel 函数大全应用,包含各类常用函数

Excel 函数大全应用&#xff0c;各类函数应用与案例实操。 AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作&#xff0c; Power BI 商业智能 68集&#xff0c; 数据库Mysql8.0 54集 数据库Oracle21C 142集&#xff0c; Office 2021实战&#xff0c; Python 数据分析&#xff0…

批量文件重命名软件 A Better Finder Rename 11汉化for mac

A Better Finder Rename 11是一款功能强大的文件重命名工具&#xff0c;可在Mac操作系统上使用。它提供了简单而直观的界面&#xff0c;帮助用户快速批量重命名文件和文件夹&#xff0c;提高文件管理和组织效率。 以下是A Better Finder Rename 11可能提供的一些主要功能和特点…

U盘怎么设置为只读?U盘怎么只读加密?

当将U盘设置为只读模式时&#xff0c;将只能查看其中数据&#xff0c;无法对其中数据进行编辑、复制、删除等操作。那么&#xff0c;怎么将U盘设置成只读呢&#xff1f; U盘如何设置成只读&#xff1f; 有些U盘带有写保护开关&#xff0c;当打开时&#xff0c;U盘就会处于只读…