Item 1: 视C++为一个语言联邦
C++ 是多范式的程序设计语言
C++ 是多范式的程序设计语言。同时支持:
- 过程式编程
- 面向对象编程
- 函数式编程
- 泛型编程
- 元编程
C++ 四种主要的子语言
- C语言。C++是基于C设计的,你可以只使用C++中C的那部分语法。此时你会发现你的程序反映的完全是C的特征:没有模板、没有异常、没有重载。
- Object-Oriented C++。面向对象程序设计也是C++的设计初衷:构造与析构、封装与继承、多态、动态绑定的虚函数。
- Template C++。这是C++的泛型编程部分。另外模板元编程也是一个新兴的程序设计范式,虽然有点非主流。
- STL。这是一个特殊的模板库,它的容器、迭代器和算法优雅地结合在一起,只是在使用时你需要遵循它的程序设计惯例。当然你也可以基于其他想法来构建模板库。
总结
- C++并非单一的一门语言,它有很多不同的规则集。
- C++程序设计的惯例并非一尘不变,而是取决于你使用C++语言的哪一部分。