> 文章列表 > C++——入门讲解

C++——入门讲解

C++——入门讲解

作者:几冬雪来

时间:2023年4月16日

内容:C++入门讲解

目录

前言: 

1.什么是C++:

2.C++关键字:

3.命名冲突:

4.域和::操作符: 

5.std内容讲解: 

6.<<符:

结尾: 


前言: 

在前不久我们结束了数据结构板块的学习,数据结构可以说是我们从C语言到C++的一个过渡阶段。而数据结构篇的完结也意味着我们将踏入新的领域,学习新的知识来提高自己的代码水平,这个模块正是我们的——C++。 

1.什么是C++:

首先还是老规矩的要学习一样东西就需要了解它的由来,那么我们的C++是什么呢?

想知道C++的由来,这里我们就要认识一个人——Bjarne Stroustrup博士他于1982年在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序一样,也就是我们的C++。 

这里我们的C++也兼并着C语言,那么下来我们就来简单的写一写C++的代码来试试看吧。

2.C++关键字:

在这里我们C++的开始就是来解决我们原本C语言中的问题

首先在C++中又新增加了很多的关键字,我们将其意义罗列出来。 

从图标中可以看出除了原本我们C语言所原本拥有的关键字之外,在C++中我们又新增加了60几个关键字,关键字的增加也就引出了我们的一些问题。

首先就是我们命名冲突的问题。 

3.命名冲突:

先来看看我们的这两个代码,在我们C语言的学习我们可以得知上面这种书写方法是可以的,但是一旦我们再加了一个头文件的话,这里我们的代码就会报错。这里报错的原因是因为,加入了这个头文件后我们的变量rand和库相冲突了。 

除了和库里面发生冲突,在出去工作之后由于项目过大,需要分多人来书写,这个时候也有可能造成人和人之间的代码相冲突的情况

4.域和::操作符: 

那么有没有方法来解决我们上面的这种情况呢?那当然是有的,在这里我们引入了新的词语——,来解决我们这个问题。 

那么该怎么解决呢?这里很简单,只需要用域将其隔开即可。 

这里的问题就可以解决了,而这里的namespace又被我们称作——命名空间。在C++中还存在着不同的域,这里我们的命名空间域就是其中一种,在后面学习C++的过程中我们还会遇到全局域,局部域和类域。 

而谈到域就会联系到我们这里的一个操作符——::。它的学术名则是,域作用限定域,接下来就来看看它是怎么样操作的。

这里我们rand的访问顺序如下:局部域——>全局域。在这里我们并没有将命名空间域给算入在内,这是因为我们的变量并不会主动去命名空间域进行搜索。如果要访问命名空间域中的值,我们有两种方法,一种就展开命名空间域,这里要用到新的关键字——using。另一种则是指定访问命名空间域用到的是——::,并且命名空间域内容的访问顺序是在全局变量之后的。

这里我们就用指定命名空间的方法来访问命名空间域中的数。这里有人就要问了,为什么不用展开命名空间域的方法来访问呢?因为这里使用这种方法的话,有概率会出现问题,我们先将代码给运行起来再进行逐一的分析。 

就像我们这里用的是展开命名空间域的方法,这里我们依旧来访问a的值,可是代码却给我们报了一个错误。这是因为我们展开命名空间域的操作就像将原本域中的值放到全局域中,又因为在我们的全局域中原本就有a这个变量,因此造成了冲突。我们这里命名空间的意义就是防止和别人发生冲突,所以在平时我们不要轻易的去展开命名空间域,这里的展开指的是——编译的时候是否会去命名空间中搜索。 

并且我们的命名空间域实际还可以用于很多的地方:

类似,在命名空间内我们可以定义变量,函数,类型等,我们还可以实现命名空间的嵌套,也就是命名空间里面嵌套一个命名空间。不同的文件的命名空间也可以进行合并的操作。 

同时在这里我们也要了解到一个东西,也就是——std,它是我们C++中的标准库,要经常使用到因为里面包含了许多的东西。 

5.std内容讲解: 

既然我们的std存储了这么多的东西,那么在实际操作写代码中我们又应该怎么使用呢? 

这里我们先写一个代码。

可以看到虽然我们使用了std中的内容,但是这里并不能直接使用,因为我们的这些内容都存储在C++这个标准库中,因此要使用的时候展开它的命名空间域。 

但是这里的展开又分为两种情况。 

第一种方法就是在这里直接对我们的std进行展开,但是这么做有一定的风险。如果我们在函数中不小心用到了C++标准库的来做我们的变量名称,这里的直接对std进行一个展开操作可能就会导致冲突。这里不建议怎么去使用它,因此下面我们就要介绍第二种展开的方式。

这种方法就是将我们常用的进行展开,而不是整个std展开,这样做就可以避免发生冲突的情况了。 

6.<<符:

在上面的代码中我们看见了一段代码中出现了我们所不认识的运算符——<<。整个操作符叫做流插入运算符,那么在这里它是怎么使用的呢?

这里我们先将刚刚的代码运行起来。 

可以看见这里我们成功的打印出来了我们想要的东西,而流插入运算符也就是将它放入某个地方里面。这里的cout和endl则是分别代表了我们打印时候的黑框和换行操作。 

这里我们就证明了endl相当于我们的换行。 

同样的有流插入运算符流提取运算符——>>,这里就简单的写出来。 

并且我们的流插入运算符和流提取运算符都有一大优势,那么是什么优势呢? 

从图中可以看出来,我们的运算符可以做到自动识别我们的类型,这是一种很方便的操作。

结尾: 

到这里,我们就正式进入C++的学习了,C++比起数据结构和我们原本的C语言又是一次难度上和知识上的一大跨越,在学习更难的知识的同时,我们也能学习到更多的东西。最后希望这篇博客能为大家带来帮助。