C++ 入门书
友情提示:请直接读英文原版。
2000 年的书,内容有点老了,但基本思想是不变的,很适合入门,应该比下面的两本书都容易读。
全书目录及各章节内容小结(不包括 12 和 16 两章,原因是 Google 的 C++ 风格指南中不推荐运算符重载和水平不够的人进行模板编程)
Volume 1
1. Introduction to Objects
面向对象编程的基本思想:封装、继承、多态。
2. Making & Using Objects
解释型/编译型语言、声明/定义/分离编译、C++ 基础:iostream、命名空间、string、文件读写、vector
3. The C in C+
C++ 基础:函数、控制语句、运算符、类型、作用域
4. Data Abstraction
数据抽象,C 中的 struct -> C++ 中的 struct(成员变量、成员函数、this 指针、头文件声明/源文件定义)
5. Hiding the Implementation
C++ struct -> C++ class(public/private/protected 访问控制、友元、接口和实现分离、减少编译量)
6. Initialization & Cleanup
C++ class object 编译器初始化和清理(构造函数、析构函数、默认构造函数、C++ 定义变量位置的原则:尽可能在使用前定义)
7. Function Overloading & Default Arguments
class 可能需要多个构造函数(函数重载、默认参数)
8. Constants
常量(默认作用域只在定义文件内)、常量指针(顶层/底层 const)、函数传参(传值、传引用)、const 成员函数(声明/定义都要在参数列表)、构造函数初始值列表(初始常量成员)、类的静态成员、mutable 变量
9. Inline Functions
内联函数(inline 声明+函数体)、自动内联类内定义的成员函数(读写访问成员函数)、内联函数要求
10. Name Control
static 关键字:含义(静态存储区/局部作用域)、函数内的静态变量、静态全局变量的生命期(初始化和析构时间)和作用域、静态成员函数、初始化顺序(相同/不同编译单元) 命名空间:合法位置、匿名命名空间、作用域运算符、using 指示、using 声明
11. References & the Copy-Constructor
引用和指针的区别、常量引用、拷贝构造函数、默认拷贝构造函数、阻止编译器生成默认的拷贝构造函数(声明为 private 且不实现,C++11 用 =delete)、const 引用参数/non const 指针参数、函数指针
13. Dynamic Object Creation
内存模型(堆/栈/静态存储区)、new/delete、内存不足、重载 new/delete
14. Inheritance & Composition
组合、继承、静态成员函数的继承、构造函数初始化列表、构造/析构顺序、虚函数、覆盖、继承与静态成员函数、protected 关键字、upcasting(指针/引用、将派生类对象视为基类对象)
15. Polymorphism & Virtual Functions
多态、静态绑定/动态绑定、虚函数(基类/派生类)、虚函数表、抽象基类、纯虚函数、纯虚基类、基类纯虚函数定义(公共代码)、派生类新的虚函数、构造函数执行顺序、构造函数中调用 virtual 函数、虚析构函数