C++ 可算是一种声名在外的编程语言了。这个名声有好有坏,从好的方面讲,C++ 性能非常好,哪个编程语言性能好的话,总忍不住要跟 C++ 来单挑一下;从坏的方面讲,它是臭名昭著的复杂、难学、难用。当然,这样一来,熟练的 C++ 程序员也就自然而然获得了“水平很高”的名声,所以这也不完全是件坏事。
不管说 C++ 是好还是坏,不可否认的是,C++ 仍然是一门非常流行且非常具有活力的语言。继沉寂了十多年,并终于发布语言标准的第二版——C++11——之后,C++ 以每三年一版的频度发布着新的语言标准,每一版都在基本保留向后兼容性的同时,提供着改进和新功能。本专栏主要就是讲这些新特性以及相关的编程实践。
在讲所有这些细节之前,我想先讲一讲为什么要用 C++,什么时候该用 C++,及如何学习 C++。
C++ 的意义
C++ 程序员应该都听到过下面这种说法:
C++ 是一门多范式的通用编程语言。
多范式,是因为 C++ 支持面向过程编程,也支持面向对象编程,也支持泛型编程,新版本还可以说是支持了函数式编程。同时,上面这些不同的范式,都可以在同一项目中组合使用,这就大大增加了开发的灵活性。因此,C++ 适用的领域非常广泛,小到嵌入式,大到分布式服务器,到处可以见到 C++ 的身影。
下面是一些著名的用到 C++ 的场合:
大型桌面应用程序(如 Adobe Photoshop、Google Chrome 和 Microsoft Office)
大型网站后台(如 Google 的搜索引擎)
游戏(如 StarCraft)和游戏引擎(如 Unreal 和 Unity)
编译器(如 LLVM/Clang 和 GCC)
解释器(如 Java 虚拟机和 V8 JavaScript 引擎)
实时控