S. Meyers, 侯捷. Effective C++:改善程序与设计的55个具体做法:第3版. ISBN: 978-7-121-12332-0.

如果说 C 的缺陷能写一本书,那么 C++ 的缺陷三本都写不完。C++ 在几乎原封不动接过了 C 的各种缺陷的前提下,还额外加了大把的缺陷进去。这就导致同等的精力下,写 C++ 更容易掉进坑里。如果再遇见一个对代码风格和设计不上心的人来写。那么写出来的东西就会变得像夜壶一样,大家都想赶紧把这玩意封装起来,没人想看里边是什么。

所以在读了 C++ 的基础介绍之后,读一读提升类的书籍是非常有必要的。 Effective C++ 就属于这种。书中具体列出了 55 条在编写 C++ 时需要注意的事项并尽量给出了理由和解释。但可惜的是,由于 C++ 的标准已经迭代了多个版本,书中的一些指南可能已经不太适用了。不过大体上来说,读这本书还是好过不读的。

书中的指南涉及的范畴很广,但我印象中,大致集中在这样几点:

  1. 不要把写 C 的思路带进写 C++。
  2. 尽量使用新的 C++ 语法特征。
  3. 尽量不要写宏。
  4. 慎重对待指针。
  5. 慎重对待多继承、抽象类等。
  6. 慎重对待对象的实例化与删除。

而其中介绍的比较新颖的 C++ 特性则大致包括:运行时类型、类型设计、泛型、更好用的标准库等。而这些在 C++ 中当成高级特性说的东西,在设计比较新颖一些的语言中其实是相当基础的。所以我非常想不通,除了兼容现有项目外,还有什么理由用 C++ 来写独立的新项目。

当然了,书中的一些规则是不针对具体语言特性的,在其他语言编程中也用得上。但相对来说这部分内容很少。


求点赞,求收藏,求分享

欢迎关注我的公众号,微信搜索:知则

读 S. Meyers 之《Effective C++:改善程序与设计的55个具体做法:第3版》相关推荐

  1. Effective C++改善程序与设计的55个具体做法笔记

    Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...

  2. (6)继承与面向对象设计- Effective C++改善程序与设计的55个具体做法(Effective C++: 55 Specific Ways to Improve Your Programs)

    文章目录 32. 确定你的public继承塑模出is-a关系(Make sure public inheritance models "is-a") 33. 避免遮挡继承而来的名称 ...

  3. Effective C++:改善程序与设计的55个具体做法

    Effective C++:改善程序与设计的55个具体做法 二.构造/析构/赋值运算 05 Know what functions C++ silently writes and calls. 06 ...

  4. 中文版《Effective C++:改善程序与设计的55个具体做法

    第一章 从C转向C++ 对每个人来说,习惯C++需要一些时间,对于已经熟悉C的程序员来说,这个过程尤其令人苦恼.因为C是C++的子集,所有的C的技术都可以继续使用,但很多用起来又不太合适.例如,C++ ...

  5. 不为人知的 35 个 More Effective C++ 改善编程与设计的最佳方法 | 原力计划

    作者 | fengbingchun 责编 | 屠敏 出品 | CSDN 博客 Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.E ...

  6. 《More Effective C++:35个改善编程与设计的有效方法》(中文版)

    <More Effective C++:35个改善编程与设计的有效方法>(中文版)china-pub计算机新书推荐 基本信息原书名: More Effective C++: 35 New ...

  7. More Effective C++35个改善编程与设计的有效方法笔记

    Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...

  8. 读我编程,我快乐:程序员职业规划之道

    职业规划,从大学开始,很少考虑这个事情,大四那会儿还学过相关的一门课,当时也只是抱着学分修修到的心态.最近一年里开始思考这个问题,近期阅读了这本<我编程,我快乐:程序员职业规划之道>,开始 ...

  9. [转]使用设计模式改善程序结构(二)

    使用设计模式改善程序结构(二) 在本系列的 第一篇文章中,描述了如何通过设计模式来指导我们的程序重构过程,并且着重介绍了设计模式意图.动机的重要性.在本文中我们将继续上篇文章进行讨论,这次主要着重于设 ...

最新文章

  1. 标签之美三——超链接的嵌入
  2. python文件命名可以用中文吗-已经十多年了!你知道 Python 可以用中文命名变量吗?...
  3. Sobel边缘检测算法verilog实现及仿真
  4. 【不了解你就OUT了】云原生基本原则
  5. StrongPity APT:不畏曝光,一心迭代,攻城掠地
  6. 种子点生长算法下——三维种子点生长
  7. 小爱音箱 电脑 麦克风_拆解报告:小米小爱音箱Art 智能音箱
  8. Ubuntu20.04虚拟机安装、配置、美化教程
  9. Linux入门系列课程一
  10. 第一水上软件 Hypack v10.05b 海洋调查和水道测量 HYPACK 2011
  11. 阿里飞猪搜索技术的应用与创新(v2021-02-03)
  12. electron-vue打包后样式变大以及不同分辨率屏幕适配问题
  13. jquery的$().each(function(i){})和和$.each(,function(i,n){})的区别和用法
  14. “富强“, “民主“, “文明“, “和谐“, “自由“, “平等“, “公正“, “法治“, “爱国“, “敬业“, “诚信“, “友善“
  15. Android Training Note
  16. 复旦大学计算机专硕学制几年,复旦大学硕士研究生学制是几年
  17. python两个字典合并为一个新字典_Python合并2个字典成1个新字典的方法(9种)
  18. 为期五天的实训总结--Java Web
  19. SVN客户端简明使用教程
  20. Nordic蓝牙芯片下载工具

热门文章

  1. vue element 实现table的自动添加列
  2. matlab 指纹,一种基于matlab的指纹识别方法
  3. PS出现“不能完成存储为命令,因为没有足够的内存RAM” 设置性能时“要求96和8之间的整数。已插入最接近的数值”
  4. 《【游戏】《三国群英传6》VI完全[下载][安装][破防拷][升级]手册》
  5. 【软件设计】如何画时序图
  6. GameObject.Find()能否查找隐藏属性的游戏对象?
  7. 对称性在第一型曲线积分中的应用
  8. python pandas合并单元格_python pandas拆分单元格
  9. Android 渐变色背景
  10. sql字段修改及查看建表语句