条款 1:尽量用 const 和 inline 而不用#define
条款 2:尽量用而不用<stdio.h>
条款 3:尽量用 new 和 delete 而不用 malloc 和 free
条款 4:尽量使用 C++风格的注释
条款 5:对应的 new 和 delete 要采用相同的形式
条款 6:析构函数里对指针成员调用 delete
条款 7:预先准备好内存不够的情况
条款 8. 写 operator new 和 operator delete 时要遵循常规
条款 9. 避免隐藏标准形式的 new
条款 10. 如果写了 operator new 就要同时写 operator delete
条款 11: 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符
条款 12: 尽量使用初始化而不要在构造函数里赋值
条款 13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同
条款 14: 确定基类有虚析构函数
条款 15: 让 operator=返回*this 的引用
条款 16: 在 operator=中对所有数据成员赋值
条款 17: 在 operator=中检查给自己赋值的情况
条款 18: 争取使类的接口完整并且最小
条款 19: 分清成员函数,非成员函数和友元函数
条款 20: 避免 public 接口出现数据成员
条款 21: 尽可能使用 const
条款 22: 尽量用“传引用”而不用“传值”
条款 23: 必须返回一个对象时不要试图返回一个引用
条款 24: 在函数重载和设定参数缺省值间慎重选择
条款 25: 避免对指针和数字类型重载
条款 26: 当心潜在的二义性
条款 27: 如果不想使用隐式生成的函数就要显式地禁止它
条款 28: 划分全局名字空间
条款 29: 避免返回内部数据的句柄
条款 30: 避免这样的成员函数:其返回值是指向成员的非 const 指针或引用,
但成员的访问级比这个函数要低
条款 31: 千万不要返回局部对象的引用,也不要返回函数内部用 new 初始化的
指针的引用
条款 32: 尽可能地推迟变量的定义
条款 33: 明智地使用内联
条款 34: 将文件间的编译依赖性降至最低
条款 35: 使公有继承体现 "是一个" 的含义
条款 36: 区分接口继承和实现继承
条款 37: 决不要重新定义继承而来的非虚函数
条款 38: 决不要重新定义继承而来的缺省参数值
条款 39: 避免 "向下转换" 继承层次
条款 40: 通过分层来体现 "有一个" 或 "用...来实现"
条款 41: 区分继承和模板
条款 42: 明智地使用私有继承
条款 43: 明智地使用多继承
条款 44: 说你想说的;理解你所说的
条款 45: 弄清 C++在幕后为你所写、所调用的函数
条款 46: 宁可编译和链接时出错,也不要运行时出错
条款 47: 确保非局部静态对象在使用前被初始化
条款 48: 重视编译器警告
条款 49: 熟悉标准库
条款 50: 提高对 C++的认识