当前位置: 首页 > news >正文

C和C++的区别?

引言

最基本的认识:C语言是面向过程的,C++是面向对象的,当然C++也支持面向过程编程。


基本概念理解

面向过程,是一种以过程为中心的编程思想,也就是说侧重解决一个问题所需的所有步骤,用代码把这些步骤依次实现。

面向对象,侧重于把问题的事务分成各个对象。建立对象抽象一点的说法就是描述某个事务在解决整个具体问题步骤中的行为,而不是完成其中的一个步骤。面向对象的显著特征就是支持封装、继承、类的抽象。形象一点的说法就是建立一个对象,我只需要知道这个对象能做什么就可以了,里面的细节我不关心。

举个栗子,制作一杯咖啡,面向过程的步骤是:烧水 -> 磨豆 -> 冲泡 -> 加糖,

面向对象的过程是:水壶(烧水)、咖啡机(磨豆、冲泡)、糖罐(加糖)。

对象的本质就是描述事务的行为,就像水壶是用来烧水的,咖啡机可以实现磨豆和冲泡,糖罐负责提供糖,这里面的内部如何实现的我不需要知道,就像我想要磨豆和冲泡,我就写咖啡机.start(),就能实现。


C和C++的比较

C++继承了C大部分的语法,也继承了C强大的底层操作特性,二者之间的关键字和运算符的功能和作用也几乎相同;二者的内存模型与硬件比较接近,几乎可以直接操纵硬件。堆、栈、静态变量这些概念在这两种语言中都存在。


C和C++的不同

C是面向过程的,不支持面向对象,不支持继承、多态、封装。

C++的类型检查更严格。C里面的类型转换几乎是任意的,C++编译器对类型转换会严格检查。有些强制类型转换能在C编译器通过,但在C++编译器就无法通过。

C和C++都有结构的概念,但C语言中结构只有成员变量,没有成员方法,C的成员变量没有权限控制,该结构体的变量对所有调用全部可见。C++中的结构可以有自己的成员变量和成员函数,且对类的成员变量有访问权限控制。

C语言程序的底层实现和内存分布基本都可见,常用于直接控制硬件,C在嵌入式领域应用很广,如常见的驱动开发等与硬件直接打交道的领域;C++可应用于应用层开发,用户界面开发等与操作系统打交道的领域,特别是图形图像编程领域,几乎所有的高性能图形图像库都是用C++实现的。

欢迎批评指正!

---------------------------------------------   END   ---------------------------------------------

http://www.dtcms.com/a/342448.html

相关文章:

  • 水深水温测量仪:水域监测的“智慧双眸”
  • Linux学习:信号的概念与产生方式
  • 03 安装【动手学深度学习v2】
  • CAN高速通信(含简单程序实战)
  • 解决远程桌面连接“为安全考虑,已锁定该用户帐户,原因是登录尝试或密码更改尝试过多”问题
  • idea将服务封装为一个jar包
  • RabbitMQ如何确保消息发送和消息接收
  • 无监督学习(聚类 异常检测)
  • 数据大屏全链路质量保障测试
  • Eino 框架组件协作指南 - 智能图书馆建设手册
  • java基础(十三)消息队列
  • 【Springboot进阶】Java切面编程对性能的影响深度分析
  • K8s概念之进程、容器与 Pod 的终极指南
  • 第二阶段Winform-3:常用控件介绍2
  • 算法题(187):程序自动分析
  • k8s集群限制不同用户操作
  • Windows 笔记本实现仅关屏仍工作:一种更便捷的 “伪熄屏” 方案
  • 基于Spring Cloud Gateway动态路由与灰度发布方案对比与实践指导
  • 哈希表知识总结
  • 风吸式杀虫灯在果园的作用
  • python的校园研招网系统
  • 面试题24:Spring循环依赖
  • 为什么可以kvcache
  • 8月21日作业
  • 【python实用小脚本-194】Python一键给PDF加水印:输入文字秒出防伪文件——再也不用开Photoshop
  • 文字识别——PDF OCR
  • electron-vite_19配置环境变量
  • 亚马逊站外推广效能重构:自然排名提升的逻辑与实操边界
  • 底层逻辑颠覆者:Agentic BI如何通过“Data + AI Agent”架构重构数据价值链?
  • 【C++】继承(详解)