C++关键字、命名空间、输入输出

一、C++

        C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。

二、C++关键字

        C++关键字有些是C语言中原带的,也有一些是C++本身的关键字,对于这些关键字,大家只需在学习过程中去理解、接受即可。

三、命名空间

3.1命名空间的介绍

        在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存 在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化, 以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。

        在命名空间中定义的变量和函数等,不与主函数或其他地方的定义冲突,也就是说命名空间是程序员单独开辟出的一块“与世隔绝”的空间,在不对命名空间进行展开或者引用时,里面的数据不会被调用和冲突。

        定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。

代码演示如下:

namespace jgk
{int n = 1;int m = 10;int ADD(int x, int y){return x + y;}
}

        对于如上的代码,“jgk”是指命名空间的名字,一般开发中是用项目名字做命名空间名,平时练习时也可以用自己名字的缩写,没有硬性要求。

        命名空间中可以定义变量/函数/类型。

        命名空间可以进行嵌套使用,如下所示:

namespace jgk
{int n = 1;int m = 10;int ADD(int x, int y){return x + y;}namespace lx{int SUB(int x, int y){return x - y;}}
}

         同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。

3.2命名空间的使用

        我们知道何为命名空间后,那么该如何使用呢?

namespace jgk
{int n = 1;int m = 10;int ADD(int x, int y){return x + y;}
}

        对于如上的命名空间,我们想要使用空间里面的定义,就需要对命名空间进行展开或者进行引用。

3.2.1展开命名空间
using namespace jgk;

        使用using namespace 命名空间名称引入,将命名空间展开后,在全局中就可以随意使用,但是此类做法较为危险,如果在主函数和命名空间中同时具有相同的变量或函数等,就会分辨不清该使用哪个。

3.2.2加命名空间名称及作用域限定符
namespace jgk
{int n = 1;int m = 10;int ADD(int x, int y){return x + y;}namespace lx{int SUB(int x, int y){return x - y;}}
}
int main()
{int m = 5;printf("%d\n", m);printf("%d\n", jgk::n);return 0;
}

        在没有加命名空间名称及作用域限定符时,调用的是main函数内部的变量,在加命名空间名称(jgk)及作用域限定符(::)后,调用的是命名空间中的变量。

3.2.3使用using将命名空间中某个成员引入
namespace jgk
{int n = 1;int m = 10;int ADD(int x, int y){return x + y;}namespace lx{int SUB(int x, int y){return x - y;}}
}
using jgk::m;
int main()
{printf("%d\n", m);printf("%d\n", jgk::n);return 0;
}

四、命名空间的总结

1、程序员独立开辟出来的“空间”,可以避免与全局变量发生冲突。

2、命名空间的起名是任意的,在做项目时,多以项目名字命名,命名不具有硬性要求。

3、命名空间的使用:

        (1)使用using namespace 命名空间名称引入.

        (2)加命名空间名称及作用域限定符。

        (3)使用using将命名空间中某个成员引入。

五、C++输入&输出

        还记得我们初入C语言时所写的“hello world”代码吗?相信那是许多小伙伴们梦想开始的地方,但是在C++中,也有自己的“hello world”,那么该如何输出呢?

说明:

1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件
以及按命名空间使用方法使用std。
2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含< 
iostream >头文件中。
3. <<是流插入运算符,>>是流提取运算符。
4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。
C++的输入输出可以自动识别变量类型。
5. 实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识。

5.1C++输出
int main()
{printf("hello world\n");//Cstd::cout << "hello world" << std::endl;//C++return 0;
}

        由上图可知,C++的输入为“cout”,为标准输出对象,endl表示换行输出。

        “cout”、“cin”、“endl”都属于< iostream >头文件,在使用它们时,需要按照命名空间的使用方法。

        C++中的输入和输出,不必像C语言中那样辨别变量的类型,可以自动识别。

int main()
{int a = 1;float b = 3.2f;double c = 3.14;long  d = 1000000;std::cout << "a = " << a << std::endl;std::cout << "b = " << b << std::endl;std::cout << "c = " << c << std::endl;std::cout << "d = " << d << std::endl;return 0;
}

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

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

相关文章

信息系统项目管理师0091:项目经理的能力(6项目管理概论—6.3项目经理的角色—6.3.3项目经理的能力)

点击查看专栏目录 文章目录 6.3.3项目经理的能力1.概述2.项目管理技能3.战略和商务管理技能4.领导力技能5.领导力与管理记忆要点总结6.3.3项目经理的能力 1.概述 项目经理需要重点关注三个方面的关键技能包括项目管理、战略和商务、领导力

图像降噪算法 BM3D 介绍

介绍 BM3D 是 “Block-Matching and 3D Filtering” 的缩写&#xff0c;即三维块匹配滤波&#xff0c;它是一种用于图像去噪的算法。该算法来源于 一篇“Image and video denoising by sparse 3D transform-domain collaborative filtering”的高质量文章&#xff0c;文章的作…

原创度高!性能好!|基于信息共享与黄金搜索的改进星鸦优化算法在50+个函数上进行测试(Matlab)

文章来源于我的个人公众号&#xff1a;KAU的云实验台&#xff0c;主要更新智能优化算法的原理、应用、改进 前面的文章中&#xff0c;KAU介绍了星鸦优化算法(Nutcracker Optimization Algorithm&#xff0c;NOA)[1]&#xff0c;NOA算法模拟了星鸦觅食、存储以及缓存搜索、恢复…

SSL证书中DV、OV和EV有什么区别,又该如何选择

SSL&#xff08;安全套接层&#xff09;证书作为一种加密工具&#xff0c;确保了网站与其用户之间传输的信息的安全性。而在选择SSL证书时&#xff0c;我们通常会看到三种类型&#xff1a;域名验证&#xff08;DV&#xff09;、组织验证&#xff08;OV&#xff09;和扩展验证&a…

信息系统项目管理师0090:项目经理的影响力范围(6项目管理概论—6.3项目经理的角色—6.3.2项目经理的影响力范围)

点击查看专栏目录 文章目录 6.3.2项目经理的影响力范围1.概述2.项目3.组织4.行业5.专业学科6.跨领域6.3.2项目经理的影响力范围 1.概述 项目经理在其影响力范围内可担任多种角色,这些角色反映了项目经理的能力,体现了项目经理的价值和作用,项目经理会涉及项日、组织、行业、…

免费开源论坛社区社交圈子系统,圈子系统,系统开发,支持二开,包含公众号/app/H5,源码交付!

一款追求体验的社区论坛圈子系统 什么是圈子交友系统&#xff1f; 圈子交友系统(多客开源圈子系统)为会员提供精准交友服务 结合多种营销机制为创业者提供低成本、高效获取注册会员&#xff0c;是婚恋交友行业的创业利器&#xff01; 多类型内容形式 多场景应用 精准推广、直…

vue cli 自定义项目架子,vue自定义项目架子,超详细

脚手架Vue CLI基本介绍&#xff1a; Vue CLI 是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了webpack配置】 脚手架优点&#xff1a; 开箱即用&#xff0c;零配置内置babel等工具标准化的webpack配置 脚手架 VueCLI相关命令…

拼多多标准推广二阶段跑不动怎么办

拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营销工具&#xff0c;由商家自主设置佣金比例&#xff0c;激励推广者去帮助商家推广商品链接&#xff0c;按最终有效交易金额支付佣金&#xff0c;不成交不扣费。是商家破零、积累基础销量的重要…

MongoDB(四):条件操作符

条件操作 1、概述2、比较操作2.1、大于操作符-$gt2.2、大于等于操作符-$gte2.3、小于——$lt2.4、小于等于——$lte2.5、范围查询 3、总结 大家好&#xff0c;我是欧阳方超&#xff0c;可以扫描下方二维码关注我的公众号“欧阳方超”&#xff0c;后续内容将在公众号首发。 1、…

数据分析的数据模型

数据分析的数据模型 前言一、优化模型1.1线性优化模型1.1.1线性优化模型定义1.1.2线性优化模型求解算法1. 1.2.1图解法1. 1.2.2. 单纯形法 1.1.3 线性优化模型的应用 1.2非线性优化模型1.2.1非线性优化模型定义1.2.2非线性优化划模型求解方法1. 2.2.1有约束非线性模型算法1.2.2…

【Linux 基础 IO】文件系统

文章目录 1.初步理解文件2. fopen ( )的详解 1.初步理解文件 &#x1f427;① 打开文件&#xff1a; 本质是进程打开文件&#xff1b; &#x1f427;②文件没有被打开的时候在哪里呢&#xff1f; ----- 在磁盘中&#xff1b; &#x1f427;③进程可以打开很多个文件吗&#xff…

Android Ant编译环境配置(Win)

1、 载ant包: 2、设置环境变量&#xff1a; 3、检查是否设置成功及版本 4、执行命令&#xff1a; android update project -p . -n “projectname”&#xff08;例如&#xff1a;android update project --target 1 -p . -n “Couplet”&#xff09;(只输入红色部分也是可以的…

[Docker]容器的网络类型以及云计算

目录 知识梗概 1、常用命令2 2、容器的网络类型 3、云计算 4、云计算服务的几种主要模式 知识梗概 1、常用命令2 上一篇已经学了一些常用的命令&#xff0c;这里补充两个&#xff1a; 导出镜像文件&#xff1a;[rootdocker ~]# docker save -o nginx.tar nginx:laster 导…

美港通正规炒股暴涨近1.5倍,石墨概念港股飙升背后是这个原因

查查配5月6日讯(编辑童古)石墨概念港股早盘高开高走。截至发稿,烯石电车新材料(06128.HK)涨近148%;中国石墨(02237.HK)涨38%。 美港通证券以其专业的服务和较低的管理费用在市场中受到不少关注。该平台提供了实盘交易、止盈止损、仓位控制等功能,旨在为投资者提供更为全面的投…

Mysql8本地安装

官网&#xff1a; https://www.mysql.com/ yum安装下载&#xff1a;https://dev.mysql.com/downloads/repo/yum/ 二进制安装下载&#xff1a;https://downloads.mysql.com/archives/community/ 安装包下载 yum安装下载 打开网址&#xff08;https://dev.mysql.com/downloads/r…

2024年美国市场亚太游戏品牌数字广告洞察报告

来源&#xff1a;Sensor Tower 美国是全球最大的游戏市场之一&#xff0c;也是亚太游戏品牌出海的重要市场。2023年Q2至2024年Q1&#xff0c;美国市​场广告投放额排名前10的亚太游戏品牌&#xff0c;合计支出 超过7.5亿美元&#xff0c;环比上涨23%。 排名第一的米哈游(miHoY…

Linux 基础IO篇

1. C语言中的文件操作 1 #include<stdio.h>2 3 int main()4 {5 FILE* pf fopen("log.txt", "w");6 if(NULL pf)7 {8 perror("fopen");9 return 1; 10 }11 fprintf(pf, &quo…

第二届生成式AI应用创新大赛

&#x1f525; 第二届生成式AI应用创新大赛 &#x1f331; 初赛正如火如荼地进行中&#xff0c;报名截止时间是5月15日&#xff01; ⏰ ⭐ 最激动人心的总决赛将于5月30日在亚马逊上海峰会上举行&#xff0c;届时会有权威评委现场点评&#xff01; &#x1f3a4; &#x1f3…

Intellij IDEA 同一段落中同时选中修改多个相同的单词

Intellij IDEA 同一段落中同时选中修改多个相同的单词 IDEA 在实际应用中&#xff0c;有时需要同时修改多个单词的情况&#xff0c;在这里提供两种方法 第一种 在一段落中选中高亮单词&#xff0c;按 ALT J 向下选中多个想要修改的单词&#xff0c;然后[直接修改] (https://so…

vue3 + ts实现canvas绘制的waterfall

实际运行效果(仅包含waterfall图表部分) component.vue <template><div ref="heatmap" :style="{ height: props.containerHeight + px }" /> </template><script setup> import ColorMap from "colormap"; import…