停更了三个月的我终于回来了!为了两个考试,我整整备考了三个月,9月19号,最后一个考试结束了!!!
好了,由于之前那个C++ 编程教程不是死了吗,今天来一个重写版的,就是一切从头开始。
警告:本篇文章是理论知识,可能会有些枯燥,不想看的可以不看,但是像我一样要考试的一定得看,都是考点!
还有就是,我会尽量把文章进行三平台同步发出,也就是公众号,cnblogs(https://www.cnblogs.com/eason66-blog/category/1937901.html),和很久以前搭建,目前已经坏掉的个人博客(http://easonlee66_admin.gitee.io/blog/)。之前在cnblogs上的文章我都会尽量同步到公众号上的。
另外,咔咔别催了,最快今年寒假。
正文分割线
C++是什么
首先,编程语言有三代。
-
机器语言:就是一堆0和1,甚至还有打孔的,学起来贼难,目前几乎没人用。
-
汇编语言:就是机器语言+助记符。啥是助记符?举个例子,假如0101010表示加法,我们就可以用ADD代替0101010,也就是1+1写成1 ADD 1,而不用1 0101010 1。所以汇编语言只不过是套了层皮的机器语言,但至少好学一点,目前还有人用。
-
高级语言:这种语言就很贴近与日常生活,代码逻辑再也不用按照计算机的逻辑写了,只需要按照一般人的逻辑写就行了,1+1写成1+1就行了。世界上第一个高级语言是Fortran。
其中,高级语言又分两类,面向过程以及面向对象。
简单来说,面向过程需要告诉电脑做什么、怎么做,而面向对象只需要告诉电脑做什么就行了。
C++就是面向对象的高级语言。世界上第一个面向对象的语言叫Smalltalk
注:有些人可能听说过C语言,C其实是C++的前身,但C是面向过程的,C++就是把C加上了面向对象的东西,C++其实最早叫“带类的C(C with classes)”,并且几乎所有的编程语言都和C有或多或少的联系
高级语言还有一种分类方法:编译执行和解释执行
首先,编好程序要让电脑听得懂,编译执行就是全部翻译成机器语言后再让电脑执行,解释执行是翻译一句执行一句,然后在翻译下一句。
C++属于编译执行。
不过,不管是编译执行还是解释执行,都需要一个编译器/解释器,相当于翻译官,负责将全部代码/一句代码翻译成机器语言。
C++的编译器叫做g++,所以有些地方也把C++叫做g++,C++还有一个别名叫Cpp,因为加的英文plus的首字母是p,C++代码的文件后缀名就叫.cpp(xxx.cpp)。
C++的头文件
之前我们把头文件比喻成说明书,今天来讲点硬核的,看不懂的可以看下面的原来的C++编程教程。
头文件其实是一种C++程序,只不过它的后缀名一般是.h。一般情况下,头文件里面都是写一些函数、类的定义的,就相当于“怎么做”,面向对象语言可以省略“怎么做”,很大程度上是因为这些头文件(Python、Java等面向对象语言没有头文件的感觉是因为头文件系统已经自动帮你们加上去了),所以我才会说头文件相当于说明书,但实际上,头文件想写什么写什么。头文件是不能直接用g++编译的,如果你非要编译,出一对.gch垃圾文件我不管。但是你可以在C++代码的上方加上一行
#include <xxx.h>
来使用头文件。加上了这行代码,就相当于将头文件里的所有内容复制到你的代码里。
C++的命名空间
之前说命名空间就像工具箱,继续说具体。
首先,有很人会用C++开发大软件(比如MC的基岩版就是用C++开发的),有些时候,大家写一些自己的函数、类(相当于“怎么做”)的时候,取名字会有选择困难症,有些时候就要和其他函数或变量或类重名,重名就会导致你用一个函数或类就不知道你用的是哪个。于是命名空间应运而生,它可以把一个函数或类放在一个命名空间里,另一个放在另一个命名空间里,使用时只用点明是那个命名空间里的函数就行了。相当于两个班都有小明,叫的时候只用叫“A班的小明”或“B班的小明”就行了。
C++内置的头文件(不包括C也有的,因为C没有命名空间)内定义的函数、类都放置于std命名空间里。
总结
今天我们讲了C++的理论知识,头文件、命名空间的概念。
下集预告
g++安装方法(Windows、Linux、MacOS三系统都有)