精通C++,先从“Helloworld”开始

时间:2022-10-09 17:44:55 | 浏览:390

1. C++是啥C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代,计算机界提出了OOP(objectoriented prog

1. C++是啥

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。

为了解决软件危机, 20世纪80年代,计算机界提出了OOP(objectoriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。

因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。

C++是可以兼容C语言语法的,它同时也有自己独有的新内容,今天,就来初步了解一下C++。

2.命名空间

老样子,先从精通C++的“Helloworld!” 的写法开始。

你是否曾经有那么一丢丢的疑惑using namespace std;是干啥的?稍等,我们再看几个例子,铺垫铺垫:


因为<stdlib.h>里面有个叫rand的函数因此我们定义的变量重名了。

为了解决命名冲突问题,C++引入namespace命名空间定义

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

成功通过了,但这里打印的不是0,而是一串数字。因为这里打印的是函数rand的地址,而不是rand变量的大小(因为rand变量被cpp命名空间关起来了,函数rand和变量rand就不在同一个域了,不会有命名冲突问题)。

那如果我想要访问变量rand该怎么做呢?我们引入:: 域作用限定符,访问cpp命名空间里的rand。

2.1 命名空间定义

1️⃣命名空间中的内容既可以定义变量,也可以定义函数和类型

2️⃣命名空间可以嵌套使用,例如:

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

它们在不同的文件中,编译器最后会合成同一个命名空间abc中,为了区分两个Node,我们嵌套了一层命名空间。最后通过::来创建两个不同类型的结构体变量n1和n2。(这里的struct abc::data::Node只是一种类型)

2.2 命名空间使用

如果我想简化一下,不想写abc::,该怎么改呢?


这里要用using namespace abc;这个语句,意思是把abc这个命名空间定义的东西放出来。要按顺序从外到内展开,否则会找不到。另外还能using namespace abc::data;这样只展开一部分,只展开abc里的data,不展开abc里的cache。一般我们最好用什么展开什么,以免又引起重名(好不容易搞个命名空间,一下回到解放前)。


是不是很眼熟?还记得hello world吗,那个using namespace std;也是这个作用。如果我们不加using namespace std;该怎么写?

其实还有一种展开的办法:只放出常用的,using std::cout;

3. C++的输入和输出

比起C语言,C++有着它特有的输入输出方式。其实在前面我们已经多次使用了,就是cin输入和cout输出。


说明:

1️⃣ 使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。


⚠️注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;

旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用<iostream>+std的方式。

2️⃣ 使用C++输入输出更方便,不需增加数据格式控制,自动识别类型,比如:整形–%d,字符–%c。


3️⃣ 如果想要控制浮点数小数点后的位数,建议还是用回C语言的printf吧(C++兼容C语言),cout处理这个会很困难。

4️⃣cin,cout会比scanf,printf慢一些,如果做题时追求速度,建议使用scanf,printf。

相关资讯

今晚9点开始,郑州二七区全域进行集中消杀

为进一步做好疫情防疫消杀工作,切实保障好人民群众的身体健康和生命安全,二七区拟在全区开展集中深度消杀防疫工作。消杀时间2022年5月8日21:00至5月9日5:00消杀范围楼院内消杀:二七辖区内居民楼院的楼道、道路、绿化、下水道、各类公共设

中央为什么开始重视许昌的发展了?

许昌是一座新兴工业城市,产业特色十分鲜明。许昌的装备制造、食品加工、纺织、能源电力等支柱产业基础深厚,发制品、人造金刚石、烟草等一批优势产业在不断地发展壮大。许昌是全国四个水生态文明城市,长江以北就一个,就是许昌。许昌还是河南省最宜居城市。

4月18日起!浚县城区开始电动车专项整治

电动车虽然方便但是一旦成为“马路杀手”那就很危险了4月16日,浚县公安局交通警察大队发布关于进一步加强城区电动两轮自行车、电动三(四)轮车治理的通告,决定自2022年4月18日起,将对无证驾驶电动三(四)轮车,驾驶三(四)轮电动车违规驶入禁

大通区人乳头瘤病毒(HPV)疫苗即将开始网上预约

关爱健康HPV疫苗预约即将开始就大家关心的问题来给大家答疑解惑啦接种年龄范围:四价HPV:9-45周岁九价HPV:16-26周岁预约时间:具体时间以“大通区人民政府发布”微信公众号预告为准,约满为止。本次预约时间2022年6月22日,15:

刚刚!涡阳发布通告!明天上午开始

刚刚涡阳发布疫情防控第30号通告涡阳县新型冠状病毒肺炎疫情防控应急指挥部通告(2022年第30号)广大市民:为有效阻断疫情传播,切实保障广大人民群众生命安全和身体健康,8月5日在全县范围内开展了区域核酸检测,累计检测72.48万人次,结果均

拆迁开始!广饶三村庄征地补偿安置方案正在制定!东青高速项目最新进展来了

最新消息!!日前大家一直关注的东青高速改扩建项目迎来最新进展!今天上午小编联系东青高速改扩建项目广饶县境内项目负责人了解到目前 已拆除庞项村、胜利村安置区以及沿线部分厂房、院落、养殖户区域完成拆迁总量17%并给予相关拆迁补偿另据了解该项目涉

太原小店区商务楼宇星级评定工作正式开始

为全力推动以“楼宇经济”“总部经济”等为主要载体的新型现代商业商务中心和区域消费中心建设,根据《小店区促进楼宇经济高质量发展扶持办法(试行)》及《实施细则》相关规定,小店区楼宇办将于3月7日起组织开展2022年度商务楼宇星级评定工作。本次评

C++编程自学宝典:初识C++语言

第1章初识C++为什么选择C++?从读者自身的实际情况来看,原因有很多。读者选择C++可能是因为必须为一个C++项目提供技术支持。在超过30年的生命周期中,该项目中已经包含了数百万行C++代码,并且大部分流行的应用程序和操作系统是使用C+编

穷游从跟团开始,怎么报团旅游划算?

走遍百八十个美好的城市,我的穷游就是从报团开始的!旅游团一直褒贬不一,但想当年我从不在乎这个,只报最便宜的团,99元2天1夜河南2天1夜的团;2500元两人5天4夜普吉岛团;1500元5天4夜云南团,旅游团是否划算取决于你是否心大:一、不用

友情链接

SEO域名抢注宝宝起名网妈妈知道币圈西安旅游攻略网瑞幸咖啡会员日三明今日新闻网国际车展网卡杜拉咖啡品鉴网咸宁新闻爆料网陈百强歌迷网金牛座星座网手机壁纸网宝宝巴士故事网比利时旅游古筝培训网今日济宁巴中今日新闻网睫毛膏品牌网
c语言中文官网-零基础c++从入门到精通pdf、c语言编译器、C/C++开发工具、c语言入门自学零基础、c++入门自学、c/c++软件下载、c语言编程软件、c语言自学免费网站、c语言零基础自学视频教程、c++手机编程软件、c语言入门程序设计、初级编程视频教程、c语言在线编程平台、C语言线上作业网站。
c语言中文官网 chuxinxin.cn ©2022-2028版权所有