为什么C++被称为语言联盟?

Why C++ is called federation of languages?

本文关键字:联盟 语言 被称为 C++ 为什么      更新时间:2023-10-16

我正在阅读有关C++的教程,出现了以下行。没有提供其他细节来进一步解释

C++是一个"语言联盟"并支持多范式编程,但我们有很多选择。

当C++被称为语言联盟时,这意味着什么,什么是多范式编程?

这是《有效C++第三版》中解释的 改进程序和设计的 55 种具体方法 作者:Scott Meyers项目1:将C++视为语言联盟

今天的C++是一种多范式编程语言,一种支持一种 过程式、面向对象、函数式、泛型和 元编程功能。这种功能和灵活性使C++成为一种工具 没有平等,但也会引起一些混乱。所有"适当的 用法"规则似乎有例外。我们如何理解这些 一种语言?

最简单的方法是不将C++视为单一语言,而是将其视为 相关语言联盟。在特定子语言中, 规则往往简单、直接且易于记忆。什么时候 您从一种子语言转移到另一种子语言,但是,规则可能会 改变。要理解C++,您必须认识到其主要内容 子语言。幸运的是,只有四个:

  • C.深入,C++仍然基于C.块,语句,预处理器,内置数据类型,数组,指针等,都来了 从C。在许多情况下,C++提供了解决问题的方法 优于 C 对应项(例如,见第 2 项(替代 预处理器(和 13(使用对象管理资源((,但是 当您发现自己使用 C++ 的 C 部分时,规则 有效的编程反映了 C 语言更有限的范围:没有模板,没有 例外,无重载等。

  • 面向对象的C++。C++的这一部分就是 C with Classes 的全部内容:类(包括构造函数和析构函数(, 封装、继承、多态、虚函数(动态 绑定(等。这是经典规则的C++的一部分 面向对象设计最直接适用。

  • 模板C++。这是C++的通用编程部分,也是大多数程序员经验最少的部分。模板 考虑因素C++普遍存在,良好的规则并不少见 编程以包含特殊的仅模板子句(例如,参见 Item 46 关于在调用模板函数时促进类型转换(。 事实上,模板是如此强大,它们产生了一个全新的 编程范式,模板元编程(TMP(。项目48规定 TMP的概述,但除非你是一个铁杆模板迷,否则你 不用担心。TMP的规则很少与 主流C++编程。

  • STL。当然,STL 是一个模板库,但它是一个非常特殊的模板库。其关于容器的公约, 迭代器、算法和函数对象很好地融合在一起,但 模板和库也可以围绕其他想法构建。The STL 有特定的做事方式,当你使用 STL,您需要确保遵循其约定。

">

语言联盟"意味着应用C++语言的各种功能和方法的广泛性。

多范式语言组合范式。例如F-Sharp,OCaml和Swift。所以这是一组语言风格。

是的,这是来自有效C++。作者只是说C++语法来自一系列子语言。在此处阅读有关它的信息。

至于多范式编程,它是一种语言支持多种编程风格的能力。这为不同的任务提供了灵活性。谷歌搜索应该为您回答这个问题。