"More Effective C++ (中文版)" 是一本由 Scott Meyers 撰写,侯捷翻译的关于提高C++编程效率和实践的书籍。书中通过一系列的条目,详细讨论了C++编程中的关键概念和最佳实践,旨在帮助开发者写出更高效、更可靠且更易于维护的代码。
1. 译序(侯捷)和导读部分,介绍了本书的定位和阅读注意事项,包括本书讨论的C++主题、采用的惯例和术语,以及如何反馈问题和获取内容更新的信息。
2. 基础议题中,作者探讨了C++的基础概念,如指针与引用的区别,建议尽量使用C++风格的类型转换以增强类型安全性,避免对数组使用多态以减少潜在错误,以及避免无用的缺省构造函数以保持简洁。
3. 运算符章节深入讲解了运算符的重载,强调谨慎定义类型转换函数以防止隐式转换导致的不预期行为,解释了自增和自减操作符前缀和后缀形式的不同,提醒不要重载逻辑运算符“&&”,“||”和逗号运算符以避免语义混淆,并讨论了正确理解和使用new和delete操作符的重要性。
4. 异常处理部分,作者讨论了如何在析构函数中防止资源泄漏,如何在构造函数中处理异常,以及如何控制异常信息的传播。此外,还提到了理解异常传递和虚函数调用的差异,通过引用捕获异常以避免额外拷贝,审慎使用异常规格以防止编译器优化问题,以及了解异常处理带来的性能开销。
5. 效率议题涵盖了编程中的效率原则,如80-20准则,懒惰计算法以减少不必要的计算,分期摊还期望的计算,理解临时对象的创建和销毁,以及协助实现返回值优化。此外,讨论了如何通过重载避免隐式类型转换,使用运算符的赋值形式替代单独形式,以及考虑调整程序库以提升性能。最后,作者指出虚拟函数、多继承、虚基类和运行时类型信息(RTTI)的性能成本,以帮助开发者权衡设计选择。
6. 技巧部分,也就是所谓的 idioms 或 patterns,可能涉及C++中的常见编程模式和最佳实践,这些模式可以帮助解决特定问题并提升代码质量。
"More Effective C++ (中文版)" 是一本深度剖析C++编程实践的书籍,适合有一定经验的C++开发者阅读,以提升他们的编程技巧和理解,避免常见的陷阱,并优化代码性能。