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

朝气

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

Item 01: View C++ as a federation of languages


C++

现今底C++已经是单多双重范型编程语言:一个又支持进程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional)、泛型形式(generic)、头条编程性形式(metaprogramming)的语言。

C++是一个语言联邦

这些能力和弹性使C++成为一个雄的工具,但为会见带许多迷惑:所有“适当方式”似乎还来差。我们欠怎么晓得这样一个言语也?

言语联邦

无限简易的法门是用C++视为一个由连带语言结合的联邦假如非单一语言。

C++的子语言

于其有子语言中,各种准则及通例都支持于简单、直观易亮、并且爱记住。然而当您自一个子语言移向外一个子语言时,守则可能变动。为了知道C++,必须使认识该重要的子语言。幸运的是单纯出四只:

  • C。说到底C++仍是以C为底蕴。区块、语句、预处理器、内置数据类型、数组、指针等都来自C。许多时C++对题目的解法其实不了就是比较高级的C解法,但当你以C++内的C成分工作时,高效编程守则映照出C语言的局限:没有模板,没有大,没有重载……

  • Object-Oriented C++。这一部分吗尽管是C with
    Classes所要求的:classes、封装、继承、多态、virtual函数……等等。这同一片段是面向对象设计以C++上之极端直白实施。

  • Template
    C++
    。这是C++的泛型编程部分,也是多程序员经验最为少的有的。Template相关考虑与规划曾弥漫整个C++。由于templates威力强大,它带来崭新的编程范型,也便是所谓的template
    metaprogramming(TMP,模板元编程)。

  • STL。STL是个template程序库。它对容器、迭代器、算法和函数对象的平整来极佳的紧密配合与和谐。STL有自己特别的工作方式,当你与STL一起坐班下,你得遵其的条条框框。

C++并无是一个涵盖一组则的紧凑语言:它是起季个子语言构成的联邦,每个语言都出温馨的规则。

NOTE:

C++高效编程守则视状况要别,取决于你下C++的呐一部分。

Effective C++