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

Far*_*hid 4 c++ programming-languages c++11

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

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

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

son*_*yao 7

这是改进您的程序和设计的有效方法的解释作者:Scott Meyers,第1项:将C++视为语言联合.

今天的C++是一种多范式编程语言,支持程序,面向对象,功能,通用和元编程功能的组合.这种强大的功能和灵活性使C++成为一种不相同的工具,但也会引起一些混乱.所有"正确使用"规则似乎都有例外.我们如何理解这种语言?

最简单的方法是将C++视为单一语言而不是相关语​​言的联合.在特定的子语言中,规则往往简单,直接且易于记忆.但是,当您从一个子语言移动到另一个子语言时,规则可能会发生变化.要理解C++,您必须认识到它的主要子语言.幸运的是,只有四个:

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

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

  • 模板C++.这是C++的通用编程部分,是大多数程序员经验最少的部分.模板考虑因素遍及C++,并且良好编程规则包含特殊的仅模板子句并不少见(例如,参见关于在模板函数调用中促进类型转换的第46项).事实上,模板是如此强大,它们产生了一种全新的编程范式,即模板元编程(TMP).第48项提供了TMP的概述,但除非你是一个顽固的模板迷,否则你不必担心它.TMP规则很少与主流C++编程相互作用.

  • STL.当然,STL是一个模板库,但它是一个非常特殊的模板库.它关于容器,迭代器,算法和函数对象的约定很漂亮,但模板和库也可以围绕其他想法构建.STL具有特定的处理方式,当您使用STL时,您需要确保遵循其惯例.

  • Scott Meyer的书籍质量从未停止过 (4认同)