以前学c的时候,老师就说c是面向过程(Procedural)的语言,c++是面向对象(Object-Oriental)的语言。至于“面向过程”是什么意思,而“面向对象”又该怎样理解,一直没讲的很通透。 也就那样罢了。
现在想认真地学一下c++,所以一定要把这个问题弄清楚,不然心里纠结便学不下去了。那么究竟“面向过程”和“面向对象”有怎样的区别?看看教材,得出了一些自己的最初的看法。
什么是程序?一种很简单说法是:数据+算法=程序。虽然这种说法很粗糙,但拿这个等式来解说“面向过程”和“面向对象”的区别很合适。
面向过程的语言(c为代表)着眼于算法(算法即对数据进行操作以实现某种功能的方法),通过指挥数据怎样“行动”来实现某种功能。
面向对象的语言(c++为代表)着眼于数据,但面向对象的数据和面向过程的对象不同,面向对象的语言认为数据应该有属性和方法。通过数据自身的“行为”和与其他数据的“交流”来实现某种功能。
有人说它们是两种不同的哲学,拥有不同的世界观和方法论。我还没到之中境界,只能领悟到这么点。,初次接触c++的一些浅薄的理解,自己的这种看法或错或偏,但对自己学习还是有一定帮助的,权且记下待以后再改吧。