0. 导读
- 本书的条款并不是cpp的语法,而是编写cpp程序时的一些建议
- 要了解条款的背后原理,才能知道是否将条款应用到自己的程序
- 本书所给的条款(建议)分为两个方向:一般性的设计策略(如该选择继承还是组合)以及特定的语言特性(如多态情况下实现类的构造和析构)
- 条款之间可能有互相参考,这些条款可能并不是独立的
术语
- 变量是具有名称的、存储数据的内存空间
- 对象指的是所有的变量,包括内置类型声明的变量
- 声明式,告诉编译器某个东西的名字和类型,但略去细节

- 定义式,列出声明式需要的细节
- 对象而言是分拨内存的地方
- 函数、类以及模板而言是给出代码本体
- 初始化,给对象赋初值的过程;对于自定义类型,就是调用构造函数
- default构造函数:可被调用而不带任何实参者(本身无参或每个参数都有缺省值),只能存在一个默认构造函数
- 对于可以传递一个参数调用的构造函数,尽量使用explicit来阻止隐式类型转换
- copy构造函数,copy assignment操作符,两者区分在于是否是在新定义一个对象,如果是则调用copy拷贝构造
- pass-by-value调用的是copy构造函数,推荐pass-by-reference-to-const
- 接口指的是一般性接口,即api
- 客户是指程序员
- ctor/dtor代表构造、析构函数
命名习惯
- lhs、rhs 二元操作符函数的两个参数名,对于成员函数,left-hand-side通常会被this替代,所以只会传递一个rhs
- pt 指向类型为T的对象的指针

- rt 类型为T的对象的引用
- TR1是一些新特性(如新容器)的描述,置于std::tr1中,但是cpp11已经全部加入了std标准库中
- Boost是一个开源的 C++ 库集合