第一章:预备知识
- C++是C的超集。它融合了OOP,泛型编程,和传统的过程性方法。C++融合了3种不同的编程方式:
- C语言代表的过程性语言
- C++在C语言基础上添加的类代表的面向对象语言
- C++模板支持的泛型编程。
- 计算机语言要处理的两个概念:数据和算法。数据是程序使用和处理的信息,而算法是程序使用的方法。
- 面向对象编程
OOP object oriented programing
强调的是数据 - 过程性编程强调算法。
- 面向对象编程
- 泛型编程是C++支持的另一种编程模式,它与OOP的目标相同,即使重用代码和抽象通用概念的技术更简单。不过OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型,例如要对不同类型的数据进行排序,通常情况下要为每一个数据类型创建一种排序函数,而泛型编程对语言进行扩展,以便可以只编写一个泛型函数,并将其用于各种实际类型。
- 程序的创建:
- 编写程序
- 编译源代码(把源程序翻译成机器代码)
- 将目标代码与其他代码链接起来。(链接的目的指的是同使用的函数的目标代码以及一些标准的启动代码组合起来,生成程序的运行阶段可执行的代码。
- 1998年通过了C++98标准,2003年发布了C++03标准,2011年批准了C++11标准。我们使用C++98表示C++98/C++2003。
- Unix区分大小写,这意味着应使用大写的C字符。
- 不同操作系统下的编译与链接:
- Unix:使用CC命令调用cfront。例如,
CC helloworld
。C ,编译器将生成heloworld.o,接下来编译器将其传送给链接程序,生成可执行文件a.out。如果只使用一个源文件,链接程序还将删除spiffy.o。同理CC hello.C world.C
可同时编译两个程序。 - Linux:编译器是g++,
g++ helloworld.cxx
有时候需要加上一定的参数g++ helloworld.cxx -lg++
。同理g++ my.cxx you.cxx
可同时编译多个源程序。生成的可执行文件是helloworld.o, - Windows系统下:
g++ great.cpp
- Unix:使用CC命令调用cfront。例如,
- Build(建立),Compile(编译),Make(生成),Build All(全部建立),Link(链接),Execute(执行),Run(运行),Debug(调试)
- Build和Make通常意味着编译项目中的所有源文件的代码,这是一个递增的过程,也就是说,如果项目中有三个文件,只有一个文件修改了,那么只重新编译该文件。