声明:
- 文中内容收集整理自《Effective C++(中文版)第三版》,版权归原书所有。
- 本内容在作者现有能力的基础上有所删减,另加入部分作者自己的理解,有纰漏之处敬请指正。
条款01:视C++为一个语言联邦
View C++ as a federation of languages.
现在的C++是一个多重范型编程语言(multiparadigm programming language),它同时支持
- 支持过程形式
- 支持面向对象形式
- 函数形式
- 泛型形式
- 元编程形式
这些能力使得C++成为一个无可匹敌的工具。理解C++最简单的方法是把c++视为一个由相关语言组成的联邦而非单一语言。C++有四个主要次语言:
- C:说到底C++仍是以C为基础。C语言的局限:没有模板,没有异常,没有重载……
- Object-Oriented C++:这部分也就是C with Classes所诉求的:类、封装、继承、多态、虚函数;
- Template C++:这是C++的泛型编程(generic programming)部分;
- STL:STL是个template程序库,是非常特殊的一个。它对容器、迭代器、算法以及函数对象的规约有极佳的紧密配合与协调。
eg:
- 对内置类型而言,pass-by-value往往比pass-by-reference更高效;
- 但基于对象的C++由于构造函数和析构函数的存在,pass-by-reference const往往更好。
请记住:
C++高校编程守则视状况而变化,取决于你使用C++的哪一部分。