C++和C的区别

C++如今是一个同时支持面向过程、面向对象、函数形式、泛型形式、元编程形式的语言。我们该如何理解C++这门语言呢?

Effective C++书中给出了一个简单的方法:将C++视为一个由相关语言组成的语言联邦而非单一语言。 在C++每个次语言中,遵守各自的次语言守则。

主要有以下4个次语言:

①C。 C++是以C语言为基础。 区块、语句、预处理器、内置数据类型、数组、指针等都来自于C。但如果你要以C++内的C成分工作时,C语言要遵守高效的编程守则,即:不能使用模板、不能使用函数重载、没有异常….这也是C语言的局限性所在。

②面向对象(Object-Oriented C++)。 早期的C++就是C加上一些面向对象的特性即**(C with classes)。**这部分是C with classes所诉求的:构造函数、析构函数、封装、继承、多态、virtual函数(动态绑定)…这是面向对象设计的守则。

③泛型编程(Template C++)。

④STL。 STL是个template的程序库。它对容器、迭代器、算法以及函数对象的规约有极佳的紧密配合与协调。

那么C语言和C++的区别就很明显了:

  • C语言是C++的子集,C++可以兼容C语言。
  • C++是面向对象编程的语言,而C语言是面向面向过程的语言。
  • C++可复用性高,引入了模板的概念,并且在此基础上开发了STL模板库,相对于C语言的函数库更加灵活、通用。:

0.0C++和C的区别相关推荐

  1. http与https的区别,http 1.0与1.1的区别

    Http与Https的区别: HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是80 , ...

  2. VC++6.0和VC++2010的区别

    VC6.0和VS2010最大的区别在于默认的字符集,VC6.0默认的字符集为ANSI,而VS2010默认的字符集为UNICODE. 这就造成了,VC6和VS2010在处理字符问题上的不同.     首 ...

  3. 使用 okHttp 3.0 版本前后的两点区别.(不要入坑哦)

    OkHttp 优点: OkHttp会从很多常用的连接问题中自动恢复.如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,会自动尝试下一个IP.OkHttp还处理了代理服务器问题和SSL握手失 ...

  4. vue2.0 $router和$route的区别

    转载自  vue2.0 $router和$route的区别 在vue2.0里页面参数是 this.$route.query或者 this.$route.params 接收router-link传的参数 ...

  5. [vb]On Error GoTo 0和On Error resume区别

    On Error GoTo 0 表示禁止当前过程中任何已启动的错误处理程序. On Error Resume Next 说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运 ...

  6. 简述raid 0 1 5 10的区别

    简述raid 0 1 5 10的区别 一.RAID卡概述 1.DELL阵列卡(RAID卡) RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立 ...

  7. CSS中z-index:0 与 z-index:auto的区别

    z-index:0 与 z-index:auto的区别 区别: z-index: 0 会创建一个新的层叠上下文 z-index: auto 不会去创建 z-index: 0 会在 z-index: 上 ...

  8. Pytorch:.max(0)和.max(1)的区别?

    Pytorch 中.max(0)和.max(1)的区别是什么? 当我们有一个形状为 ( m , n ) (m, n) (m,n) 的 Tensor x x x 时,其中 m m m 表示行数, n n ...

  9. python中return0与return1_关于C++中的return 0和return 1的区别

    展开全部 return 0和return 1的区别主要体现在不同退出状态等方面,详细解释如下: 1.两e69da5e887aa62616964757a686964616f31333366306531者 ...

最新文章

  1. pytorch几种损失函数CrossEntropyLoss、NLLLoss、BCELoss、BCEWithLogitsLoss、focal_loss、heatmap_loss
  2. python怎么调出某年某月日历_Python 写的计算指定年指定月日历的脚本
  3. zcmu 1128 (数据处理)
  4. 【使用指南】WijmoJS 前端开发工具包
  5. Virtio: An I/O virtualization framework for Linux
  6. 现代ups电源及电路图集_不间断电源维修,服务靠谱
  7. Jarvis Oj Pwn 学习笔记-level0
  8. adaboost java_Adaboost的java实现 | 学步园
  9. C++ 从函数参数中获取指针 指针传递
  10. Scrum立会报告+燃尽图(十月二十三日总第十四次)
  11. 网络安全实验5 证书应用和证书管理
  12. java咖啡机_JAVA咖啡机2010款
  13. 使用matplotlib绘制xkcd风格的图表(解决中文字体问题)
  14. ElastSearch整合SpringBoot模仿京东商城实现关键字高亮显示
  15. 宽带猫拨号报错651,虚惊一场
  16. 有趣的转义字符,常见转义字符大全,转义字符速查手册 Escape character
  17. 100个网络基础知识
  18. java--获取当前时间
  19. 区块链论文7(oyente智能合约漏洞检测工具)
  20. 《浪潮之巅》作者吴军万字长文:中国算力的危与机

热门文章

  1. 软件工程凉了?很多大学撤销软工硕士学科!
  2. Matlab 中保存运行的m文件
  3. 组策略(GPO)利用与横向移动
  4. 二十三、1-Bit数据的存储(延迟线/磁芯/DRAM/SRAM/磁带/磁盘/光盘/Flash SSD)
  5. 在使用uglify是出现:.pipe(uglify()) SyntaxError:Unexpected token .
  6. SSM实现登录注册的小案例(手把手喂饭)
  7. 2d有限元计算机仿真,超精密单点金刚石车削加工有限元仿真
  8. LayUI前端框架的安装和引入
  9. Linux中DNS的分离解析和自动分配
  10. 4阶经典龙格库塔格式