C++是个多重范型编程语言,主要分成以下四个次语言:
1.C语言:
C++是以C为基础。比如语句、预处理器、内置数据类型、数组、指针等都来源于C。
2.面向对象的C++:
C++的面向对象部分。如构造函数、析构函数、封装、继承、多态、虚(virtual)函数(动态绑定)……等等,都是面向对象上设计的守则。
3.泛型编程C++:
C++的泛型(Template)编程部分。
4.STL:
C++的标准模板库。如容器(vector)、迭代器(iterator)、算法(algorithms)等都是通过模板实现的。
在以上四个次语言都有自己的规约,守则并不全不相同。
当你对内置数据类型操作时,通过值传递比通过引用传递更高效;但当你从C转到面向对象的C++时,由于构造函数和析构函数的存在,传递const引用更好;但当你转到STL时,由于迭代器和函数是通过指针实现的,所以又变成传递值更好。
C++高效编程守则视状况而变化,取决于你使用C++的哪一部分。