"More Effective C++ 是一本由 Scott Meyers 编著的书籍,它提供了35个关于改进C++编程和设计的实用方法。这本书是C++开发者的必备读物,旨在帮助读者提升他们的代码质量和设计水平。译者包括侯捷、ZHC、WQ以及陈崴,书中涵盖基础议题、运算符、异常处理和效率提升等多个主题,旨在深入探讨C++的各种最佳实践和潜在陷阱。"
在这本书中,作者Scott Meyers首先探讨了C++的一些基本概念和注意事项,如指针与引用的区别(Item M1),强调在适当情况下使用C++风格的类型转换(Item M2),并提醒程序员避免对数组使用多态(Item M3)。此外,他还讨论了如何避免无用的默认构造函数(Item M4)。
在运算符方面,Meyers警告读者谨慎定义类型转换函数(Item M5),并解释了自增和自减操作符前缀和后缀形式的不同(Item M6)。他建议避免重载逻辑运算符“&&”,“||”和逗号运算符(Item M7),并强调理解new和delete操作符的不同用途(Item M8)。
异常处理是C++中一个重要的主题,Meyers建议使用析构函数来防止资源泄漏(Item M9),并在构造函数中采取相应措施(Item M10)。他还讨论了异常信息在析构函数外的传递问题(Item M11),以及理解抛出异常与传递参数或调用虚函数之间的区别(Item M12)。异常捕获应通过引用进行(Item M13),而异常规格的使用应审慎(Item M14)。他还提醒读者注意异常处理带来的系统开销(Item M15)。
在效率方面,Meyers提倡遵循80-20准则(Item M16)和使用懒惰计算法(Item M17)。他还讨论了分期摊还预期计算(Item M18),临时对象的产生(Item M19),以及如何协助实现返回值优化(Item M20)。为了避免隐式类型转换,建议通过重载(Item M21)和使用运算符赋值形式(Item M22)来提高代码清晰度。如果可能,程序员应考虑更改程序库以优化性能(Item M23),同时理解虚拟函数、多继承、虚基类和运行时类型信息(RTTI)带来的成本(Item M24)。
总而言之,“More Effective C++”是一本深入C++实践的指南,它提供了大量关于如何编写更高效、更安全和更易于维护的C++代码的实用建议。对于想要提升C++技能的开发者来说,这本书无疑是一份宝贵的参考资料。