开篇词 | 把C++从“神坛”上拉下来,这次咱这么学
为什么 C++ 这么难学?
如果你之前看过那个课程,就应该知道,我的工作经历比较杂,HTTP 只能算是我的一个“副业”。这次要讲 C++,感觉终于回到了“老本行”。毕竟写了二十多年的 C++ 代码,经手的大大小小的 C++ 项目不计其数,现在终于有机会把一点一滴积累起来的这些经验整理、分享出来,内心还是有点激动的。
一说到 C++,几乎所有人的第一反应就是“出了名的难学难用”。的确如此,因为它实在是太复杂了,有太多的特性和细节。
随着标准版本的演进,C++ 里包含的东西也越来越多。最早的 C++98 只有 60 来个关键字,到 C++11 变成了 70 多个,C++20 则膨胀到了近百个。对比一下同级别的 Java、Go 等语言,C++ 真称得上是“巨无霸”。而且这还仅仅是核心语言,外面还有更庞大的标准库在等着你。
不断膨胀的核心语言加上庞大的标准库,让学习、使用 C++ 的门槛无形中提高了很多,不仅 C++“新手”学起来很难,就连 C++“老手”也会觉得,用好它并不是一件容易的事情。
Effective C++ 里有一句话,我觉得很有意思:
C++ 是一个威力十足的编程语言,如果 C 带给你足够绞死自己的绳索,C++ 就是间五金店,挤满了许多准备为你绑绳结的人。
这句话形象地说出了 C++ 的难点:它太接