Effective C++之条款01:视C++为一个语言联邦

声明:

  1. 文中内容收集整理自《Effective C++(中文版)第三版》,版权归原书所有。
  2. 本内容在作者现有能力的基础上有所删减,另加入部分作者自己的理解,有纰漏之处敬请指正。

条款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++的哪一部分。

你可能感兴趣的:(Effective,C++学习之路)