C语言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++