将C++视为一个由相关语言组成的联邦而非单一语言。在其某个次语言中,各个守则与通例都倾向简单、直观易懂、并且容易记住。C++次语言主要有:
- C。说到底C++仍是以C为基础。区块、语句、预处理器、内置数据类型、数组、指针等都统统来自C。许多时候C++对问题的解法其实不过就是较高级的C解法,单当你以C++内的C成分工作时,高效编程守则映照出C语言的局限:没有模板,没有异常,没有重载……
- Object-Oriented C++。这部分就是C with classes所诉求的:classes,封装,继承,多态,virtual函数。
- Template C++.这是C++泛型编程的部分。它们带来崭新的编程泛型,也就是所谓的template metaprogramming(TMP, 模板元编程)
- STL。STL是个template程序库,它对容器、迭代器、算法以及函数对象的规约有极佳的紧密配合与协调,然而templates及程序库也可以其他想法建置出来。
C++并不是一个带有一组守则的一体语言;它是从四个次语言组成的联邦语言,每个次语言都有自己的规约。记住这四个次语言你就会发现C++容易了解很多。