《More Effective C++》要点解析
"More Effective C++中文版1" 这本书由Scott Meyers撰写,是一本深入探讨C++编程实践的著作,由侯捷翻译并撰写了译序和导读。书中通过一系列独立的ITEM(编程建议)来阐述如何更高效地使用C++。每个ITEM都涵盖了C++的不同方面,包括基础议题、运算符、异常处理和效率提升等。 在基础议题中,ITEM M1讨论了指针与引用的区别。指针可以为空,可以被重新赋值,而引用一旦初始化后必须始终引用某个对象,不能为NULL。ITEM M2提倡使用C++风格的类型转换,如`static_cast`、`dynamic_cast`等,以提高代码的清晰性和安全性。ITEM M3警告程序员不要对数组使用多态,因为多态通常基于对象的指针或引用,而数组无法隐藏其元素类型。 关于运算符,ITEM M5提醒谨慎定义类型转换函数,以防止意外的隐式转换。ITEM M6解释了自增和自减操作符前缀和后缀形式的差异,前缀形式先执行操作再返回结果,而后缀形式则相反。ITEM M7指出不应重载逻辑运算符"&&"、"||"或逗号运算符",",因为它们有特殊的短路行为。 异常处理部分,ITEM M9建议使用析构函数来确保资源的正确释放,防止资源泄漏。ITEM M10在构造函数中进行资源管理,确保即使在异常情况下也能正确清理。ITEM M12讨论了抛出异常与传递参数或调用虚函数之间的性能和语义差异。 效率方面,ITEM M16提出了80-20规则,即关注最耗时的20%代码以优化整体性能。ITEM M17介绍了延迟求值(Lazy Evaluation),在不需要结果时避免计算。ITEM M20强调了协助完成返回值优化(Return Value Optimization,RVO),减少不必要的复制。 书中的技巧(Techniques,也称为Idioms或Patterns)涉及了C++的一些高级主题,例如多态、虚函数、RTTI(运行时类型信息)的成本,以及如何通过重载避免隐式类型转换等。 这本书提供了35个实用的编程策略,旨在帮助开发者写出更高效、更可靠、更易于维护的C++代码。
![](https://csdnimg.cn/release/download_crawler_static/86334685/bg10.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86334685/bg11.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86334685/bg12.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86334685/bg13.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86334685/bg14.jpg)
剩余263页未读,继续阅读
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)