以前學c的時候,老師就說c是面向過程(procedural)的語言,c++是物件導向(object-oriental)的語言。至於「面向過程」是什麼意思,而「物件導向」又該怎樣理解,一直沒講的很通透。 也就那樣罷了。
現在想認真地學一下c++,所以一定要把這個問題弄清楚,不然心裡糾結便學不下去了。那麼究竟「面向過程」和「物件導向」有怎樣的區別?看看教材,得出了一些自己的最初的看法。
什麼是程式?一種很簡單說法是:資料+演算法=程式。雖然這種說法很粗糙,但拿這個等式來解說「面向過程」和「物件導向」的區別很合適。
面向過程的語言(c為代表)著眼於演算法(演算法即對資料進行操作以實現某種功能的方法),通過指揮資料怎樣「行動」來實現某種功能。
物件導向的語言(c++為代表)著眼於資料,但物件導向的資料和面向過程的物件不同,物件導向的語言認為資料應該有屬性和方法。通過資料自身的「行為」和與其他資料的「交流」來實現某種功能。
有人說它們是兩種不同的哲學,擁有不同的世界觀和方**。我還沒到之中境界,只能領悟到這麼點。
,初次接觸c++的一些淺薄的理解,自己的這種看法或錯或偏,但
對自己學習還是有一定幫助的,權且記下待以後再改吧。
C 面向過程和物件導向的關係
如何大象裝進冰箱?面向過程 為了把大象裝進冰箱,需要3個過程。把冰箱門開啟 得到開啟門的冰箱 把大象裝進去 開啟門後,得到裡面裝著大象的冰箱 把冰箱門關上 開啟門 裝好大象後,獲得關好門的冰箱 每個過程有乙個階段性的目標,依次完成這些過程,就能把大象裝進冰箱。物件導向 為了把大象裝進冰箱,需要做三個...
物件導向和面向過程
面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...
物件導向和面向過程
物件導向和面向過程的區別 面向過程 更加關注整個程式的實現流程 物件導向 更加關注整個程式中有哪些類,每個類有哪些屬性,有哪些行為,它將整個功能劃分為許多小功能,分散到不同的類中,使用時,僅需命令相應的類完成相應的事情 物件導向的優勢 1.更高的容錯率 2.更易閱讀的 3.更易擴充套件 物件導向的劣...