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

时间:2018-05-24 05:29:49

标签: c++ c++11 programming-languages

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

  

C ++是一种“语言联盟”,支持多范式编程,我们有很多选择。

当C ++被称为语言联合以及什么是多范式编程时,它意味着什么?

3 个答案:

答案 0 :(得分:6)

这是 Effective C ++ Third Edition 55改进您的程序和设计的具体方法的解释 作者:Scott Meyers 第1项:将C ++视为语言联盟

  

今天的C ++是一种多范式编程语言,一种支持a   程序,面向对象,功能,通用和   元编程功能。这种强大功能和灵活性使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是一个模板库,但它是一个非常特殊的模板库。关于容器的公约,   迭代器,算法和函数对象网格很漂亮,但是   模板和库也可以围绕其他想法构建。 STL   有特殊的做事方式,当你和他一起工作时   STL,您需要确保遵循其惯例。

  •   

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

是的,这是来自Effective C ++。作者只是说C ++语法来自一系列子语言。阅读它here

对于多范式编程,它具有语言支持多种编程风格的能力。这允许不同任务的灵活性。 Google搜索应该为您解答此问题。