面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向过程的思维方式是分析综合;面向对象的思维方式是构造。
比如对C语言过程式解决问题时,一般是将现有的数据结构先定义出来。然后想办法构造出算法了。而用C++这样的面向对象求解时,先是将对象抽出来。构造成一个仿真的环境,然后在这个环境里,把与最终要解决的问题间建立一个方法。
所以面向过程的程序设计有挑战性,技巧性强。而面向对象主要在于对象抽象有技术性,抽象完了后,任何人都可以做后面的工作了。
面向对象和面向过程的主要区别就是数据是单独存储还是与操作存储在一起。对面向过程而言,数据是独立的。而在面向对象中,对象本身就提供了存储数据的空间(类的数据成员),这样就是函数的参数传递简单多了,而且提供了数据封装后,数据的访问也变可靠了。
面向过程就是将编程当成是做一件事,要按步骤完成,每一步就是一个过程。比如作菜,先放油,接着是放菜进去炒,然后放水,最后菜就做好了。这里面放油,炒,放水就是三个步骤。
面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。而编程就是设置事物能够做什么事。其实有点像是将面向过程给放到事物内部了。仍然举作菜为例,其实面向过程就好像你是个厨师,要自己炒菜,所以要讲究步骤,而面向对象就好像你是个食客,你只要通知厨师作菜,即发一个消息就可以了,至于厨师怎样作菜,是不用知道的。
总结两句话:
面向对象是将实物高度抽象化
面向过程是一种自顶向下的编程。
而面向对象是自下先建立抽象模型然后再使用模型。
C++对C的扩展
封装,多态,继承,类,模版,STL泛型编程。