写c++的,脑海中总是会浮现一个问题,面向对象与看相过程的差别是什么?
为什么要发展出面向对象的机制?
众所周知,c是面向过程的,所有的逻辑被分解为一个个模块,模块之间通过一定的流程进行拼接。
其实在面向对象的的时候,程序也是这么运行的,我们的设计,也会将功能分解为小的模块,然后集成。
在分与合的方法上,我们是没有变化的。
其实,面向对象是一种高层次的抽象,这种抽象是人的大脑天生具有的功能。
而面向过程是一种低层次的实现。
就想vhdl中,会有rtl级别和更高级别的抽象,面向对象对应的就是rtl级别的。
vhdl程序设计中,我们可以分为三个层次:电路逻辑层次 rtl层次和高级语义层次。
面向对象有两种抽象:
静态抽象:将数据和方法封装,这样的抽象,能够隐藏类内部的数据,成为一个抽象的对象。
动态抽象:继承和多态,这种抽象,是为了满足对象之间的关系和关系的变化,为了提高代码的复用性。
从概念辨析的角度,面向对象和面向过程并不是两个对立的概念,原则上,面向对象的实现还是面向过程的,面向过程可以实现所有面向对象需要实现的功能,也就是两者是软件技术发展过程中出现的两个技术,并且是在不同的抽象层次上的技术。
所以写c的程序员对c++中哪些模糊的语义不能够完全信任
写C++的,对c的无法快速满足需求的也是有所微词。