精通C++:More Effective C++中文精华解读
需积分: 0 188 浏览量
更新于2024-08-02
收藏 1.32MB DOC 举报
"More Effective C++ 中文版(WQ版)" 是一本由Scott Meyers编著,侯捷翻译的C++编程指南,旨在帮助读者提升C++编程效率和代码质量。这本书包含了35个编程实践建议,涵盖了基础议题、运算符、异常处理、效率提升以及编程技巧等多个方面。
1. 基础议题:
- Item M1:指针与引用的区别 - 引用是安全的别名,不会为空,一旦初始化就不能改变;指针可以为空,且可以重新指向其他对象。
- Item M2:尽量使用C++风格的类型转换 - 避免使用C风格的强制类型转换,推荐使用`static_cast`, `dynamic_cast`, `const_cast`, 和 `reinterpret_cast`。
- Item M3:不要对数组使用多态 - 多态性通常适用于对象,不适用于数组,因为数组没有虚函数。
- Item M4:避免无用的缺省构造函数 - 在不需要的时候,不应自动提供缺省构造函数,以免引入不必要的行为。
2. 运算符:
- Item M5:谨慎定义类型转换函数 - 类型转换函数可能隐藏错误,应谨慎使用。
- Item M6:自增和自减操作符的前缀和后缀形式 - 前缀形式先执行操作,后缀形式先返回原值再执行操作。
- Item M7:不要重载逻辑运算符"&&", "||"或"," - 这些运算符有特殊的短路性质,重载可能导致预期之外的行为。
3. 异常处理:
- Item M9:使用析构函数防止资源泄漏 - 析构函数应确保正确释放资源,即使在异常发生时。
- Item M10:在构造函数中防止资源泄漏 - 使用RAII原则,确保在构造过程中分配的资源能在异常发生时被正确清理。
- Item M11:禁止异常信息传递到析构函数外 - 析构函数不应抛出异常,以保持异常安全性。
- Item M12:理解抛出异常与传递参数或调用虚函数的区别 - 抛出异常会破坏调用栈,而参数传递和虚函数调用则不会。
4. 效率:
- Item M16:牢记80-20法则 - 优化应集中在性能瓶颈上,而不是整个程序。
- Item M17:考虑使用延迟评估 - 拖延计算直到真正需要时才进行,以提高效率。
- Item M19:理解临时对象的来源 - 临时对象可能会带来额外开销,理解其产生原因可优化代码。
- Item M20:协助完成返回值优化 - 通过编写代码来配合编译器的返回值优化,减少复制开销。
5. 技巧:
- Item M25:将构造函数和非成员函数虚拟化 - 提供一种方式来控制类实例化,例如单例模式。
- Item M26:限制某个类所能产生的对象数 - 可以通过将构造函数设为私有来实现,比如计数器或不可复制的类。
这些Item旨在提升C++程序员对语言特性的理解和使用,通过遵循这些实践,可以编写出更高效、更健壮的代码。同时,书中还包括了侯捷的译序和导言,以及陈崴的附录,提供了更多关于C++编程的思考和建议。
121 浏览量
2018-09-27 上传
234 浏览量
2023-04-29 上传
2023-07-29 上传
2023-07-29 上传
2023-07-30 上传
2023-06-25 上传
2023-06-20 上传
一品天涯
- 粉丝: 6
- 资源: 7
最新资源
- ES管理利器:ES Head工具详解
- Layui前端UI框架压缩包:轻量级的Web界面构建利器
- WPF 字体布局问题解决方法与应用案例
- 响应式网页布局教程:CSS实现全平台适配
- Windows平台Elasticsearch 8.10.2版发布
- ICEY开源小程序:定时显示极限值提醒
- MATLAB条形图绘制指南:从入门到进阶技巧全解析
- WPF实现任务管理器进程分组逻辑教程解析
- C#编程实现显卡硬件信息的获取方法
- 前端世界核心-HTML+CSS+JS团队服务网页模板开发
- 精选SQL面试题大汇总
- Nacos Server 1.2.1在Linux系统的安装包介绍
- 易语言MySQL支持库3.0#0版全新升级与使用指南
- 快乐足球响应式网页模板:前端开发全技能秘籍
- OpenEuler4.19内核发布:国产操作系统的里程碑
- Boyue Zheng的LeetCode Python解答集