我正在阅读有关C ++的教程,并且出现了以下内容。没有提供其他细节来进一步解释
C ++是一种“语言联盟”,支持多范式编程,我们有很多选择。
当C ++被称为语言联合以及什么是多范式编程时,它意味着什么?
答案 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搜索应该为您解答此问题。