更新时间:2020-09-05 00:28:48
封面
版权信息
内容简介
其 他
译序
导读(Introduction)导读
基础议题
条款 1:仔细区别 pointers和 references
条款 2:最好使用 C++转型操作符
条款 3:绝对不要以多态(polymorphically)方式处理数组
条款 4:非必要不提供 default constructor
操作符(Operators)操作符
条款 5:对定制的“类型转换函数”保持警觉
条款 6:区别 increment/decrement 操作符的前置(prefix)和后置(postfix)形式
条款 7:千万不要重载&&,||和,操作符
条款 8:了解各种不同意义的 new和 delete
异常(Exceptions)异常
条款 9:利用 destructors避免泄漏资源
条款 10:在 constructors内阻止资源泄漏(resource leak)
条款 11:禁止异常(exceptions)流出 destructors之外
条款 12:了解“抛出一个 exception”与“传递一个参数”或“调用一个虚函数”之间的差异
条款 13:以 by reference方式捕捉 exceptions
条款 14:明智运用 exception specifications
条款 15:了解异常处理(exception handling)的成本
效率(Efficiency)效率
条款 16:谨记 80-20 法则
条款 17:考虑使用 lazy evaluation(缓式评估)
条款 18:分期摊还预期的计算成本
条款 19:了解临时对象的来源
条款 20:协助完成“返回值优化(RVO)”
条款 21:利用重载技术(overload)避免隐式类型转换(implicit type conversions)
条款 22:考虑以操作符复合形式(op=)取代其独身形式(op)
条款 23:考虑使用其他程序库
条款 24:了解 virtual functions、multiple inheritance、virtual base classes、runtime type identification的成本
技术(Techniques,Idioms,Patterns)技术
条款 25:将 constructor和 non-member functions虚化
条款 26:限制某个 class所能产生的对象数量
条款 27:要求(或禁止)对象产生于 heap之中
条款 28:Smart Pointers(智能指针)
条款 29:Reference counting(引用计数)
条款 30:Proxy classes(替身类、代理类)
条款 31:让函数根据一个以上的对象类型来决定如何虚化
杂项讨论
条款 32:在未来时态下发展程序
条款 33:将非尾端类(non~leaf classes)设计为抽象类(abstract classes)
条款 34:如何在同一个程序中结合 C++和 C
条款 35:让自己习惯于标准 C++语言
推荐读物推荐读物
auto_ptr实现代码auto_ptr实现代码