面向过程和面向对象的区别

面向过程程序设计:数据结构 + 算法

主要解决科学计算问题,用户需求简单而固定

特点:

分析解决问题所需要的步骤
利用函数实现各个步骤
依次调用函数解决问题

问题:

软件可重用性差
软件可维护性差
构建的软件无法满足用户需求

面向对象程序设计:由现实世界建立软件模型

将现实世界中的事物直接映射到程序中,可直接满足用户需求

特点:

直接分析用户需求中涉及的各个实体
在代码中描述现实世界中的实体
在代码中关联各个实体协同工作解决问题

优势:

构建的软件能够适应用户需求的不断变化
直接利用面向过程方法的优势而避开其劣势

缺点:

代码复杂,透明度低,对开发者隐藏开发细节。需要开发者有足够硬的底层功底。对面向对象模型有具体的理解。
增加了封装,继承和多态三个重点的思想,也额外带来了开销。这里就不具体列举。

C语言和C++语言关系

C语言是在实践的过程中逐步完善起来的
1、没有深思熟虑的设计过程
2、使用时存在很多“灰色地带”
3、残留量过多低级语言的特征
直接利用指针进行内存操作
C语言的目标是高效
1、最终程序执行效率的高效

当面向过程方法论暴露越来越多的缺陷的时候,业界开始考虑在工程项目中引入面向对象的设计方法,而第一个需要解决的问题就是:高效的面向对象语言,并且能够兼容已经存在的代码。

C语言 + 面向对象方法论

C语言和C++并不是对立的竞争关系
C++是C语言的加强,是一种更好的C语言
C++是以C语言为基础的,并且完全兼容C语言的特性

学习C++并不会影响原有的C语言知识,相反会根据加深对C的认知;
学习C++可以接触到更多的软件设计方法,并带来更多的机会。
1)C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法
2)C++是Java/C#等现代开发语言的基础,学习C++后能够快速掌握这些语言
3)C++是各大知名软件企业挑选人才的标准之一

猜你喜欢

转载自blog.csdn.net/qq_35433716/article/details/82251017