我的C++之路 2022/1/18
第一章 预备知识
1.1 C++ 简介
C++融合了三种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。
1.2 C++简史
1.2.1 C语言
20世纪70年代早期,贝尔实验室的Dennis Ritchie 致力于开发UNIX操作系统,要求一种简洁的语言,能够生成简洁、快速的程序,并能有效地控制硬件。然而,传统的汇编语言是依赖于计算机的内部机器语言,是低级的,直接操作硬件,不具备可移植性。
后来,出现了一种被称为编译器的特殊程序能够将高级语言翻译成特定计算机的内部语言。如此,便可以通过使用不同的编译器作为不同平台与高级语言程序之间的媒介。于是,Ritchie基于旧语言开发了C语言。
1.2.2 C语言编程原理
计算机语言要处理两个概念——数据与算法。数据是程序使用和处理的信息,算法是程序使用的方法。C语言最初是过程性语言,强调编程的算法方面。
C语言具有两个良好的特性——结构化编程以及自顶向下的设计。结构化编程将分支限制为一组行为良好的结构,提高了程序的清晰度、可靠性,使程序便于维护。自顶向下在C语言中的体现是将大型程序分解为小型、便于管理的任务。
1.2.3 面对对象编程OOP
面对对象编程OOP强调数据。与传统的让问题满足语言的过程性方法不同,OOP试图让语言来满足问题的要求。其理念是设计与问题的本质特性相对应的数据格式。
在C++中,类是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的特定数据结构。通常,类规定了可使用哪些数据来表示对象以及可以对这些数据执行哪些操作。
OOP程序设计首先设计类,它们准确地表示了称需要处理的东西。类定义描述了对每个类可执行的操作。然后可以设计一个使用这些类的对象的程序。从低级组织(如类)到高级组织(如程序)的处理过程叫做自下而上的编程。
OOP编程还有许多其他优点后续的学习中将慢慢认识。
1.2.4 C++和泛型编程
泛型编程与OOP的目标相同,即使重用代码和抽象通用概念更简单。泛型编程强调的是独立于特定数据类型。术语泛型指的是创建独立于类型的代码。泛型编程需要对语言进行扩展,以便可以只编写一个泛型函数,并将其用于各种实际类型。
1.2.5 C++的起源
C++同样诞生于贝尔实验室。
1.3 可移植性和标准
1.4 程序创建的技巧
1.4.1 创建源代码文件
给源文件命名时,必须使用正确的后缀,将文件标识为C++文件。
源文件扩展名 | |
---|---|
C++实现 | 源代码文件的扩展名 |
UNIX | C、cc、cxx、c |
GNU C++ | C、cc、cxx、cpp、c++ |
Digital Mars | cpp、cxx |
Borland C++ | cpp |
Watcom | cpp |
Microsoft Visual C++ | cpp、cxx、cc |
Freestyle CodeWarrior | cp、cpp、cc、cxx、c++ |
1.4.2 编译和链接
此处不表。
2022/1/18