### C++程序设计(谭浩强)
#### 一、C++简介
《C++程序设计》是一本由著名计算机教育家谭浩强编著的教材,该书作为“中国高等院校计算机基础教育课程体系规划教材”之一,旨在为学生提供一个系统学习C++的基础平台。本书语言通俗易懂,即使是没有编程基础的学习者也能通过跟随书中的指导进行练习来快速入门C++。
#### 二、C++的发展历程
- **早期编程语言**:在计算机诞生初期,人们主要使用机器语言或汇编语言进行编程。1954年,FORTRAN语言成为了世界上第一种高级编程语言。
- **BASIC语言**:1964年,为了简化FORTRAN并满足初学者的需求,BASIC语言诞生。它是一种小型的高级编程语言,易于学习。
- **C语言**:1972年,由美国贝尔实验室的D.M. Ritchie开发了C语言。C语言并非专为初学者设计,而是针对计算机专业人士,适用于编写系统软件和应用软件。
- **C++的出现**:随着软件规模的不断增长,传统的C语言逐渐显露出不足。20世纪80年代初,贝尔实验室的Bjarne Stroustrup博士开发出了C++,这是一种在C语言基础上增加面向对象特性的新语言。C++不仅保留了C的所有优点,还引入了许多新的特性,如类和对象的概念。
#### 三、C++的基本知识
- **1.1 从C到C++**:C++是在C的基础上发展起来的,它保持了C的所有优点,并添加了面向对象的机制。因此,大多数C语言编写的程序可以在不作任何改动的情况下直接在C++环境中运行。
- **1.2 最简单的C++程序**:介绍如何编写最简单的C++程序,通常从“Hello World”程序开始。这一部分会讲解C++程序的基本结构,包括注释、头文件包含、命名空间、主函数等。
- **1.3 C++程序的构成和书写形式**:详细介绍C++程序的组成部分,如变量声明、数据类型、流程控制语句等,并解释如何正确地组织代码。
- **1.4 C++程序的编写和实现**:教授如何使用IDE或文本编辑器编写C++程序,以及如何编译和运行这些程序。
- **1.5 关于C++上机实践**:提供上机操作指南,帮助读者掌握实际操作技巧,例如调试程序、解决编译错误等。
#### 四、数据类型与表达式
第二章主要介绍C++的数据类型和表达式的使用方法:
- **数据类型**:讲解C++中的基本数据类型,如整型(int)、浮点型(float/double)、字符型(char)等,以及复合数据类型如数组、结构体等。
- **表达式**:覆盖算术表达式、逻辑表达式、位运算表达式等,以及运算符的优先级和结合性规则。
#### 五、面向过程的程序设计
- **3.1 程序设计初步**:介绍结构化编程的基本概念和技术,如函数的定义和调用、变量的作用域和生命周期等。
- **4.1 函数与预处理**:深入探讨函数的设计与实现,包括递归函数、函数模板等;同时讲解预处理指令的使用方法。
- **5.1 数组**:介绍数组的基本概念,如一维数组、多维数组的定义、初始化及访问方式。
- **6.1 指针**:讲解指针的基本概念,包括指针变量的定义、指向不同数据类型的指针、指针与数组的关系等。
- **7.1 自定义数据类型**:介绍结构体(struct)和联合体(union)的概念,以及如何使用它们创建复杂的数据类型。
#### 六、面向对象的程序设计
- **8.1 类和对象**:定义类的概念,包括成员变量、成员函数、构造函数、析构函数等。
- **9.1 关于类和对象的进一步讨论**:深入探讨类的高级特性,如静态成员、友元、内联函数等。
- **10.1 运算符重载**:讲解如何重载C++中的运算符,使得用户自定义类型能够像内置类型一样使用常见的运算符。
- **11.1 继承与派生**:介绍继承的基本概念,包括单继承、多继承、虚继承等。
- **12.1 多态性与虚函数**:解释多态性的概念,以及如何通过虚函数实现多态。
- **13.1 输入输出流**:讲解C++中的流输入输出库(iostream),包括基本的输入输出操作、格式控制等。
- **14.1 C++工具**:介绍一些实用的C++工具,如调试工具、性能分析工具等。
### 总结
《C++程序设计》这本书全面覆盖了C++语言的基础知识和高级特性,适合初学者和有一定编程经验的开发者阅读。书中不仅有理论讲解,还有大量实例和练习,有助于读者更好地理解和掌握C++。对于希望深入了解C++的读者来说,本书是一个非常有价值的资源。