Index

  • 基础议题
  • item1:指针与引用的区别
  • item2:尽量使用 C++风格的类型转换
  • item3:不要对数组使用多态
  • item4:避免无用的缺省构造函数
  • 运算符
  • item5:谨慎定义类型转换函数
  • item6:自增(INCREMENT)、自减(DECREMENT)操作符前缀形式与后缀形式的区别
  • item7:不要重载“&&”,“||”, 或“,”
  • item8:理解各种不同含义的 NEW 和 DELETE
  • 异常
  • item9:使用析构函数防止资源泄漏
  • item10:在构造函数中防止资源泄漏
  • item11:禁止异常信息(EXCEPTIONS)传递到析构函数外
  • item12:理解“抛出一个异常”与“传递一个参数”或“调用一个虚函数”间的差异
  • item13:通过引用(REFERENCE)捕获异常
  • item14:审慎使用异常规格(EXCEPTION SPECIFICATIONS)
  • item15:了解异常处理的系统开销
  • 效率
  • item16:牢记 80-20 准则(80-20 RULE)
  • item17:考虑使用 LAZY EVALUATION(懒惰计算法)
  • item18:分期摊还期望的计算
  • item19:理解临时对象的来源
  • item20:协助完成返回值优化
  • item21:通过重载避免隐式类型转换
  • item22:考虑用运算符的赋值形式(OP=)取代其单独形式(OP)
  • item23:考虑变更程序库
  • item24:理解虚拟函数、多继承、虚基类和 RTTI所需的代价
  • 技巧(TECHNIQUES,又称 IDIOMS 或 PATTERN)
  • item25:将构造函数和非成员函数虚拟化
  • item26:限制某个类所能产生的对象数量
  • item27:要求或禁止在堆中产生对象
  • item28:灵巧(SMART)指针
  • item29:引用计数
  • item30:代理类
  • item31:让函数根据一个以上的对象来决定怎么虚拟
  • 杂项
  • item32:在未来时态下开发程序
  • item33:将非尾端类设计为抽象类
  • item34:如何在同一程序中混合使用 C++和 C
  • item35:让自己习惯使用标准 C++语言