与LSGO一起学“第1章 初识C++(1.3 C++与C有什么不同)”

本文对比了C语言和C++的编程范式,指出C语言采用面向过程编程,而C++采用面向对象编程。面向对象编程能更好地解决大型软件开发中的可维护性和可重用性问题。

1.3 C++与C有什么不同

很多初学者认为C++仅仅是C语言的扩充和补充,如果这么想,哪就大错特错了。C++C语言最大的不同是在解决问题时思维方式的不同,C++采用面向对象思维,而C语言采用面向结构思维。

面向结构思维的宗旨就是将一个大程序拆分成一个个很小的结构,这里有必要说明一下结构。结构是什么呢?结构就是实现一个或多个功能的代码块,比如说计算“1+1=?”,假如算出等于2,那么就是实现了一个功能,而这个实现“1+1=2的代码块就可以看作是一个结构,或者叫做方法。

面向结构思维就是将一个大程序划分成若干个很小的结构,每个结构都完成一个或多个功能,所有结构集合起来就可以完成一个大功能。

这样的编程思想在80年代前期还是可以的,但是到了80年代后期,它的弊端就暴露出来了。

首先是程序的可维护性方面,由于结构化编程仅仅是将大程序细化成若干个小结构,而并没有考虑数据的安全性问题,比如说数据还是属于整个程序的,这样就导致某个地方对数据的修改,会对整个程序造成难以预料的影响。举个例子,某个游戏怪物的生命值设定为100,而这种怪物在游戏中的数量为30个,由于生命值是属于整个程序的,而不是某个具体的怪物的,所以主角每砍怪物一下,30个怪物的生命都会下降10点,而主角杀死一个怪物以后,30个怪物都会死亡,这显然是不合理的。

其次是程序的可重用性,由于结构化编程并没有将相关的数据和结构看作一个整体,所以无法利用已有的代码来创造新的代码。打个比方,某游戏公司用结构化的方式创造了一个怪物,这个怪物是由若干个结构和若干个数据组成,游戏公司希望在它的基础上再创造一个新的怪物,这个新的怪物仅仅是比旧的怪物多一个功能——跳跃,看上去要实现这个怪物似乎很简单,但是由于结构化编程并没有将怪物看作是一个整体,所以他们需要重新编写这个新怪物。

随着软件工程的发展,软件越来越大,数据越来越多,面向结构所带来的问题也越来越多,越来越严重,曾一度导致“软件危机”,面向对象就是为了解决“软件危机”而创造的,面向对象思想增加了大量的编程理念,它有能力将一个大程序拆分成若干个对象,每个对象中再封装部分数据和实现功能的方法,一个对象想要访问另一个对象的数据,必须争得该对象的同意,而该对象中数据的改变也不会影响到其他对象,从而解决了数据的安全性问题;另一方面,面向对象允许将具有相同特征的对象划分为一类,而同一类的对象又可以继续向下派生,父生子,子生孙,代码不经修改即可重复利用,从而实现了代码的重用。拿游戏做个比方,游戏中的30个怪物可以看作是30个对象,每个对象都拥有一个生命值,这样即使其中一个怪物的生命发生变化,也不会影响到其他的怪物。同时由于对象是一个整体,所以我们要创造一个新怪物时,只需要在原来的怪物身上增加新功能即可,而不用重写该代码。

面向对象的另一个优点是支持多态性,多态性是什么呢?多态性是指不同的对象采取相同的方法会导致不同的行为或结果。比如说我们要模拟一个足球游戏,不同的足球运动员代表不同的对象,而相同的方法则指的是射门这同一动作,由于运动员技术水平不同,所以技术好的运动员进球的概率要高些,而技术差的运动员则踢飞的概率要高些。

基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:加速键,短按占空比加1,长按连续加。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少年编程小助手_Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值