Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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

请留意: 本书写作于2005年, 部分后来纳入C++11中的特性目前还未出现或尚存在于TR1和Boost中.

C++最初只是在C的基础上加上一些面向对象特性, 但随着C++语言的发展, 它现已成为一个复杂的多重范型编程语言(Multiparadigm Programing Language). 其支持以下编程形式:

  • 面向过程形式: procedural
  • 面向对象形式: object-oriented
  • 函数形式: functional
  • 泛型形式: generic
  • 元编程形式: metaprograming

将C++理解为包含4个次级语言的语言联邦. 从一个次级语言切换到另一个次级语言时, 所要遵守的高效编程守则会相应变化. 这4个次级语言分别是:

  • C. 指C++中的C部分, 包括基本的块/语句/预处理器/内置数据类型/数组/指针等概念. C++或者照搬了C中的实现, 或者提供了更为高效的处理方式(例如, 使用const常量而非#define).
  • Object-Oriented C++. 指原始的C++语言在C基础上的新增部分, 包括类/封装/继承/多态/Virtual函数等概念.
  • Template C++. 指C++中的泛型编程部分, 这对应一种对多数程序员较陌生的编程范型----模板元编程(Template Metaprograming, TMP).
  • STL. 一个特殊的Template程序库, 包含容器/迭代器/算法/函数对象等新概念.

在不同的次级语言中, 需要遵守不同的编程规约, 程序员需要对此有清晰的认识.