读 Stephen Prata 之 C++ Primer Plus

Stephen Prata, 张海龙, 袁国忠. C++ Primer Plus. ISBN: 978-7-115-27946-0.

其实我一直有意不去碰 C++,因为 C++ 的东西多而复杂。这是历史原因造成的。 C++ 一度以问题解决者的形象登场,而且也有不少软件以 C++ 为基础开发语言。但随着历史发展,一些原先的设计缺陷越来越明显,同时版本迭代之后新增的内容也越来越繁杂。再加上更新方向的不连贯,导致 C++ 已经成了一个大杂烩语言。光输入输出库的头文件写法就至少支持 4 套,编程范式方面至少有面向过程、面向对象和基于模板的泛型编程三种范式的痕迹。除此以外 C++ 还提供了大量做同一件事情的不同语法,这就造成的极大的混乱。更要命的是由于 C++ 标准太过繁杂,很多特性并不是所有编译器都能支持的,这就使得一个本来要跨平台的标准最终实际跨不了平台。要理清 C++ 的这些方方面面,需要花费的精力实在是太多。

但我毕竟不和现成的可用代码过不去。我虽然不大量写 C++,但我需要大致了解到能读 C++,以及编译现有 C++ 项目的程度。因而就读了这本书。

这本书的作者是 C Primer Plus 的作者 Stephen Prata,整体风格还是一样。所以这里就不多赘述,仅做个推荐。只是有几个问题需要注意。

首先 C++ Primer PlusC Primer Plus 是并行的两本书。如果你要学 C++,没必要从 C 开始读起。原因我之前已经说过,C 和 C++ 并不完全兼容,而且二者的思路非常不一样。你从 C 过渡到 C++ 的时间差不多够你重学一遍了。

其二,C++ 对于做一件事情提供了好几种语法。一般来说,在新项目中要使用最新标准推荐的那种。这是出于安全性、效率和开发舒适度等多方面的考量。例如,旧版本的 C++ 中还大量使用指针,但现代 C++ 基本不推荐直接裸调指针。当然了,如果你觉得一个初学者或者一个有几年开发经验的所谓“大佬”比整个 C++ 标准委员会还聪明,那就爱咋写咋写。

其三,统一自己的编程范式很重要。C++ 提供了多种编程范式,但是不意味着你都要用到。目前,在 C++ 里写纯面向过程的代码是不太推荐的。因为如果你用不到类特性,完全可以写成更简洁的 C。如果你用到类特性而不用类组织程序就会很混乱。所以现在主流的 C++ 代码范式是面向对象。除此而外, C++ 标准库毕竟还提供了强大的泛型编程。虽然不如 C# 或者 Haskell 的泛型那么明了,但我还是建议对 C++ 泛型做一个大致了解。

最后,我对于此书其实并不是非常满意。因为这本书第六版之后没有更新(也可能是我没有找到后续版本)。所以这本书的 C++ 标准停留在了 C++11。但目前 C++17 和 C++20 都出来了。根据 C++ 委员会为 C++ 逆天改命的计划,C++ 23 都在制定中了。所以,对于现在的 C++ 教材,紧跟标准极其重要。


求点赞,求收藏,求分享

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

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值