Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12051
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-07 14:29
文章分类

全部博文(3)

文章存档

2014年(3)

我的朋友

分类: C/C++

2014-09-21 16:02:20

    接触过C语言和C++,都知道C是面向过程的语言,而C++是面向对象的语言。那么面向过程和面向对象有什么区别呢,为什么面向对象语言在解决实际问题时要比面向过程好使呢?
    首先来看看什么是面向过程,面向过程是分析解决的问题,使用函数按照分析得出的步骤一步一步实现。那么,面向对象呢,面向对象时通过对象进行解决问题,对象能够接受数据,处理数据并且把数据传给其他对象。
    这样看来,面向对象和面向过程还是用点抽象,打个比方,比如要建造一台机器,在实现上,面向对象和面向过程有什么不同呢。
    面向过程:首先分析建造这个机器学要那些步骤,然后按步骤,一步一步完成 。
    面向对象:首先是分析,建造这个机器可以分成多少个不同的小机器,然后最后才把机器组合起来。
    这么看来,面向过程更像是中国古代的的工匠,整个过程全都是一个人完成,而面向对象则是现在工厂的流水线,每个人完成其中一小个零件的加工和组装。这么一对比,无论是效率还是制造难度,就能分出高低了。
    面向对象还有封装,继承,和多态等特性,这是C所没有的。这里分析一下,封装就是把小机器加个外壳,使用者,不需要知道,怎么实现,只需要知道他实现什么样的功能,这样降低了使用小机器这个对象的难度,而且因为增加外壳,外来者不能随意更改小机器里面的内部的东西,大大增加了机器的稳定性。而继承说通俗点就是在原有的小机器里增加些东西,例如这个机器需要一个有自己logo轮子,那么,我可以拿一个通用的轮子做模板,然后再他基础上继承,保留了原来的东西,但是,我要的是一个有我自己logo的轮子,所以在轮子上增加一个logo,这样就形成了自己的东西。
    那么封装和继承,在程序设计上有什么优点呢,首先安全性的到保证,别人不能任意访问对象里的数据,随意修改数据。而在程序继承对更是大大提升程序的可移植性,往往设计到一个基础对象,可以被其他对象继承,代码就变得更通用了。
    这里说的并不是说面向对象语言要比面向过程语言好,只是这两种程序设计的两种思想,其实完全可以使用C语言的struct和函数封装完全可以实现面向对象的编程,只是在实现上不如C++自然。我觉得就单纯C和C++上并没有什么优劣之分,如在底层操作上和运行效率上C更占优势,而在面向对象设计上,却是C++容易。虽然语言不分优劣,但是在程序设计思想上,面向对象思想在编程上却有不可比拟的优势,所以即使使用C语言进行编程,依然要知道面向对象的思想和会编写面向对象思想,这样将大大提升程序的安全性和可移植信。

阅读(1231) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:linux实用技巧:你该使用ctags查找源码了

给主人留下些什么吧!~~