C++?命名空间与输入输出操作代码C语言

C++是一种面向对象的计算机程序设计语言,?它扩展了C语言的功能,?并引入了面向对象编程的概念,?如类、?继承和多态等,C++是以C语言为基础进行了拓展与创新,C++兼容C语言绝大多数的语法。

还记得我们在学C语言时的第一个代码程序吗?

#includeintmain(){printf("helloworld\n");return0;}C++也兼容这种写法,但是C++有套自己的输入输出,严格说C++版本的helloworld应该是这样写的。

#includeusingnamespacestd;intmain(){cout<<"helloworld\n"<

c语言项目类似下面程序这样的命名冲突是普遍存在的问题,C++引入namespace就是为了更好的解决这样的问题。

#include#includeintrand=10;intmain(){printf("%d\n",rand);return0;}

这里我们可以看到编译器报错了,因为在stdlib头文件中包含一个名为rand的函数与定义的变量rand发生了命名冲突。在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。

?定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接对{}即可,{}中即为命名空间的成员,命名空间中可以定义变量/函数/类型等。

?namespace本质是定义出个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不再冲突了。

#include#include//otto是命名空间的名字namespaceotto{//命名空间中可以定义变量/函数/类型intrand=10;//变量intAdd(intleft,intright)//函数{returnleft+right;}classotto//类{public:voidman(){return;}private:intx;};}intmain(){printf("%p\n",rand);printf("%d\n",otto::rand);return0;}第一个printf默认访问的是全局的rand函数地址,第二个printf用到的是otto命名空间里的rand,这样就解决了命名冲突的问题。

?namespace只能定义在全局,当然他还可以嵌套定义。

namespaceotto{namespacekun{intrand=1;intAdd(intleft,intright){returnleft+right;}}}intmain(){printf("%d\n",otto::kun::rand);printf("%d\n",otto::kun::Add(1,2));return0;}?项目工程中多文件中定义的同名namespace会认为是个namespace,不会冲突。

?C++标准库都放在个叫std(standard)的命名空间中。

namespaceN{inta=0;intb=1;}intmain(){printf("%d\n",a);return0;}

所以我们要使用命名空间中定义的变量/函数,有三种方式:

?指定命名空间访问,项目中推荐这种方式。

intmain(){printf("%d\n",N::a);return0;}通过“命名空间+::”的方式在指定命名空间访问。

?using将命名空间中某个成员展开,项目中经常访问的不存在冲突的成员推荐这种方式。

usingN::b;intmain(){printf("%d\n",N::a);printf("%d\n",b);return0;}展开后使用这个变量时就不用带命名空间了。

?展开命名空间中全部成员,项目不推荐,冲突风险很大,日常小练习程序为了方便推荐使用。

usingnamespceN;intmain(){printf("%d\n",a);printf("%d\n",b);return0;}

?是InputOutputStream的缩写,是标准的输入、输出流库,定义了标准的输入、输出对象。

?std::cin是istream类的对象,它主要面向窄字符的标准输入流。

?std::cout是ostream类的对象,它主要向窄字符的标准输出流。

?std::endl是个函数,流插入输出时,相当于插入个换行字符加刷新缓冲区。

?<<是流插入运算符,>>是流提取运算符。

?使C++输输出更方便,不需要像printf/scanf输输出时那样,需要手动指定格式,C++的输入输出可以自动识别变量类型,其实最重要的是C++的流能更好的支持自定义类型对象的输入输出。

?IO流涉及类和对象,运算符重载、继承等很多面向对象的知识,这些知识我们还没有讲解,所以这里我们只能简单认识下C++IO流的用法,后面会有专门的个章节来细节IO流库。

?cout/cin/endl等都属于C++标准库,C++标准库都放在个叫std(standard)的命名空间中,所以要通过命名空间的使用方式去用他们。

?般日常练习中我们可以usingnamespacestd,实际项目开发中不建议使用

?这里我们没有包含,也可以使用printf和scanf,在包含间接包含了。vs系列编译器是这样的,其他编译器可能会报错。

#includeusingnamespacestd;intmain(){inta;doubleb;charc;//可以自动识别变量的类型cin>>a;cin>>b>>c;cout<

THE END
1.C++简介C++是一种被认为静态,编译式,大小写分明的一种计算机语言。 C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。 c++属于一种中高级语言类型,级别不同,代码难易程度自然不同,这里就不一一罗列了。https://blog.csdn.net/2301_80959788/article/details/144094339
2.介绍11个常用的C++代码本文我们将列出 11 C++ 代码片段,可以帮助您解决日常编程问题。 C++是使用最广泛的编程语言之一。它每天都被数百万程序员使用,是竞争性编程的首选语言。在这里,我们将列出11 C++代码片段,可以帮助您解决日常编程问题。因此,事不宜迟,让我们开始吧。 1.查找矢量的大小 https://www.51cto.com/article/792506.html
3.C++经典程序代码大全20230924.docx总结资料总结资料总结资料总结资料根据半径计算圆的周长和面积根据半径计算圆的周长和面积includeconstfloatPl3.1416;floatfCirLfloat;floatfCirSfloat;潸明常量义函数变肌的原型6声明自定义函数https://m.renrendoc.com/paper/292704871.html
4.1.计算机和C++编程入门(计算机系统算法编程环境典型C++代码1.计算机和C++入门 1.1计算机系统 计算机要遵循的一系列指令统称为程序 计算机使用的各种程序称为软件 组装一台计算机所需的物理设备称为硬件 硬件 输入设备:使用户将https://www.jianshu.com/p/dda258ec42bb
5.大规模C++软件开发卷1:过程与架构C++从入门到精通代码计算机当当木垛图书旗舰店在线销售正版《大规模C++软件开发 卷1:过程与架构 C++从入门到精通代码计算机编程语言程序设计软件开发书籍》。最新《大规模C++软件开发 卷1:过程与架构 C++从入门到精通代码计算机编程语言程序设计软件开发书籍》简介、书评、试读、价格、图片等相关信http://product.dangdang.com/11597569550.html
6.汉明Hamming编码(计算机网络)C++代码实现本代码实现了汉明编码的具体实现过程,其中有详细的代码注释,能够帮助大家更好的理解实现的方法,帮助大家理解hammingCode 计算机网络 HammingCode 汉明编码 2020-04-27 上传 大小:8KB 所需: 50积分/C币 立即下载 matlab中窗函数的C++实现,以及fir1函数C++实现经测试与matlab结果基本一致 窗函数包括:矩形窗(boxcar)https://www.iteye.com/resource/weixin_43833597-12368028
7.C语言程序设计医院信息管理系统附源代码计算机C++资料.docxC语言程序设计医院信息管理系统附源代码计算机C++资料.docx 17页内容提供方:蒋老师学习资料 大小:549.96 KB 字数:约1.61万字 发布时间:2023-09-30发布于四川 浏览人气:80 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)https://max.book118.com/html/2023/0925/6040153040005233.shtm
8.Linux系统与内核100道面试题除了以上三种智能指针外,在C++11之前还存在std::auto_ptr,但在C++11中已被废弃,不推荐使用。 智能指针通过在析构函数中释放关联的资源,或者通过引用计数来管理资源的生命周期。它们提供了更安全和方便的内存管理方式,减少手动管理内存的复杂性。在编写C++代码时,推荐使用智能指针来管理动态分配的内存资源。 http://www.360doc.com/content/24/0109/22/81013658_1110525579.shtml
9.?《十万字C语言动漫教程》,别用4G看,不然100M流量没了4)多文件:当代码量比较大以后,涉及到多个文件时,在线编译环境就无能为力了; 五、下载 Dev C++ Dev C++ 是一个轻量级的 C/C++ 集成编译环境,正因为是轻量级,所以还是有很多不太好用的地方,不过不用担心,对于教学来说已经足够了。 相比Visual Studio 20XX 来说,安装快了不少,所以我打算用这个工具来进行后续文http://zhangshiyu.com/post/23487.html
10.青岛814岁C++代码编程启航班补习青岛可达鸭少儿编程加拿大York大学博士后,山东大学计算机学院博士,在人工智能、机器学习等领域深耕多年,发表多篇国际会议论文,曾在ACM国际大学生程序设计竞赛、全国大学生数学建模大赛、美国大学生数学建模大赛等多个比赛中获得奖项,具有丰富的编程经验。 教龄:11年教学科目:8-14岁|C++代码编程启航班8-16岁|C++代码编程能力提升班8-16岁https://www.gaokao.cn/px/xuexiao/2143f/10e605.html
11.信息学奥赛NOIP系列课程(三阶段)ljfljfwwwabcxyz10、C++代码测试 http://www.dooccn.com/cpp/ 11、金山打字游戏 http://www.51dzt.com/game/ 12、键盘打字练习在线版 http://jp.wubidz.cn/ 13、在线打字练习 http://dz.wubidz.cn/dzlx.php http://s13/mw690/001bggGNzy7qdj5lSAk2c&690https://blog.sina.com.cn/s/blog_408666ad0102yndb.html
12.C++少儿编程轻松学写给中小学生的零基础教程先在计算机的Dev C++软件上编写程序,再按照1.3.1节介绍的方式,把代码提交到题库进行检测。 如图1-36所示,单击【提交】按钮,准备提交代码。 图1-36 如图1-37所示,把Dev C++软件上编写好的程序复制并粘贴到题库中。注意提交代码的时候要选择C++。提交后,题库会自动判断所写程序的正确性。 https://labs.epubit.com/bookDetails?id=UBb64008d82eaa
13.GitHubjobbole/awesomecppC++ 资源大全中文版,标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。由「开源前哨」和「CPP开发者」微信公号团队维护更新。 - jobbole/awesome-cpp-cnhttps://github.com/jobbole/awesome-cpp-cn