将C++视为一个由相关语言组成的联邦而非单一的语言
C++包含四个次要语言
- C C++仍是以C为基础。区块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data types)、数组(arrays)、指针(pointers)。但是C语言没有模板(templates)、异常(exceptions)、重载(overloading)……
- Object-Oriented C++ classes(包括构造函数和析构函数),封装(encapsulation)、继承(inheritance)、多态(polymorphism)、virtual函数(动态绑定)……
- Template C++ C++的泛型编程
- STL STL是个template库。对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象(function objects)的规约有极佳的紧密配合与协调。
对内置类型来说pass-by-value
通常比pass-by-reference
高效
对内置类型来说对用户自定义构造函数和析构函数,pass-by-reference-to-const
更好
REMEMBER
- C++高效编程守则视状况而变化,取决于使用C++哪部分