C++是一个同时支持过程形式,面向对象形式,泛型形式,元编程形式的语言。要深刻理解C++,需要将C++视为一个由相关语言组成的联邦而非单一语言,这些次语言包括:C,Object-Oriented C++,Template C++, STL 。当从一个次语言移到另一个次语言时,高效编程守则可能要改变。例如:对内置类型而言,pass-by-value通常比pass-by-reference高效,但当从C part of C++移往Object-Oriented C++,则由于用户自定义构造函数和析构函数的存在,pass-by-reference-to-const往往更好。运用Template C++时尤其如此,因为彼时你甚至不知道所处理的对象的类型。然而一旦跨入STL,迭代器和函数对象都是在C指针之上塑造出来的,所以对STL的迭代器和函数对象而言,旧式的C pass-by-value守则再次适用。
结论:C++高效编程守则视状况而变化,取决于使用C++的哪一部分。