C++入门认知及操作(命名空间及C++输入和输出)

本文介绍了C++作为C语言的扩展,支持面向对象编程的特点,重点讲解了命名空间的概念及其在解决命名冲突中的作用,以及C++的输入输出机制,包括cout和cin的使用以及std命名空间的使用惯例。
摘要由CSDN通过智能技术生成
一、什么是C++

       初识C++C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度 的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。 1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语 言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语 言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程 序设计。

二、C++的入门操作

1.C++是在C的基础上开发拓展而来的语言,C++中兼容大部分的C,C++对于C中的某些操作进行了细化和优化,其中C++关键字含有63个,而C语言是32个关键字。

以下是C++的关键字,本篇只对C++做入门介绍,不进行关键字的讲解

2.C++的命名空间(命名域)

2.1在C语言中,如果多人协同写代码负责不同的区域,那么对于名称的定义有大概率重复,例如小明和小红合作写关于栈和队列的接口函数,俗话说男女搭配干活不累,小明负责写栈的创建、压栈,出栈等等,小红写关于队列的接口函数,创建队列,队列的设计等等,但小红就觉得这个队列跟她之前写的单链表大差不差,于是直接将之前的单链表代码copy了过来,小红和她的男朋友小明在写相关代码时特别注意函数名和结构体类型名互不冲突,本来觉得天衣无缝,但在相互应用的时候却发生了报错,原因是他们俩在定义结构体数据类型的时候代码都写的是
typedef int STDataType;
这下可好了,现在要不然一个人全改,要不然就用不了。小明心想“我堂堂七尺男儿,岂能郁郁久居人下”,于是小明坚定立场,毫不退让,结果小明就和小红分手了。
C++之父本杰尼在使用C语言时也饱受这个C语言的诟病,于是在写C++语言时引入了命名空间这个概念。

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

图一:

图二:

图三:

2.2命名空间的使用

命名空间的使用有三种方式,下列是是使用例子

1.加命名空间名称及作用域限定符

图四:

ps:这里的x是图二中命名空间中的,假如应用A空间中的变量就是A::xxx

2.使用using将命名空间中某个成员引入

3.使用using namespace 命名空间名称 引入

要注意,虽然命名空间B是在命名空间A中的,如果只引入A,那B中的成员是无法引入的,具体例子如下

这个命名作用域就像一个密码柜,如果我不用他,那么会将命名域内的成员保护起来,防止与其他程序中其他成员冲突,应用命名域就是将密码输入,可以将这个保护外壳打开,这个密码可以是整个柜子的密码,也可以精确到一个物件。请注意:命名域并不影响生命周期,他是在全局域中的。
程序查找用户自定义名称的顺序是:①当前局部域,②全局域,③引用命名域。
意思就是说如果在局部域和其他域有相同的用户名,会优先使用当前局部域的用户名。

3. C++输入&输出 新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物,那C++是否也应该向这个美好的世界来声问候呢?我们来看下C++是如何来实现问候的。

cout中的c在windows中代表控制台(cmd)out代表出去,可以对标C中的printf。

_____________________________________________________________________________

说明: 1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件 以及按命名空间使用方法使用std。

2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含< iostream >头文件中。

3. >是流提取运算符。

4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。 C++的输入输出可以自动识别变量类型。

5. 实际上cout和cin分别是ostream和istream类型的对象,>>和格式,后续编译器已不支持,因 此推荐使用+std的方式。

_____________________________________________________________________________

cin中的c也代表控制台(cmd),可以对标C中的scanf。

4.std命名空间的使用惯例: std是C++标准库的命名空间,如何展开std使用更合理呢?

1. 在日常练习中,建议直接using namespace std即可,这样就很方便。

2. using namespace std展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型/对 象/函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模 大,就很容易出现。所以建议在项目开发中使用,像std::cout这样使用时指定命名空间 + using std::cout展开常用的库对象/类型等方式。

//下次接着介绍C++的后续操作(接着是C++的缺省参数)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值