2011-01-22 69 views
4

我對C++很陌生,並且對模塊化編程功能導向的編程之間的區別是什麼。我從來沒有做過模塊化編程,所以我只是根據定義知道它包含函數的模塊。所以有什麼區別在順序(面向功能的語言)和模塊化編程之間?提前致謝。 編輯: 我正在讀關於C++的OOP.It開始像什麼非結構化編程,不是給了一個基本的想法有關結構化編程,比模塊化編程最後,OOP函數和模塊之間有什麼區別?

+1

「模塊化編程」是不是在C正式的概念++。你的意思是「面向對象編程」嗎? – 2011-01-22 10:27:31

+0

「我只是通過定義知道模塊包含函數。」 - 我從來沒有聽說過C++語境中「模塊」的定義。謹慎地闡述或解釋?你從哪裏聽到這個消息? – 2011-01-22 10:39:36

回答

2

模塊化編程主要是一種在計算機程序中減少耦合的策略,主要通過封裝來實現。

在模塊化編程之前,通過結構化編程確保代碼的本地一致性,但缺乏全局一致性:如果您決定將拼寫檢查字典作爲紅黑樹實現,那麼此實現將被暴露給程序中的其他人,以便程序員能夠進行文本渲染等工作,從而能夠訪問紅黑樹節點,以便與他們一起做有意義的事情。

當然,這成了地獄,一旦你需要改變你的字典的實現,因爲這樣你就必須解決其他程序員的代碼。

更糟的是,如果實現細節涉及全局變量,那麼你必須是非常謹慎的誰改變了他們以什麼順序,或奇怪的錯誤會出現。

模塊化編程應用封裝,這一切,通過分離從接口(該程序的其餘部分可以用什麼)實現(私有的模塊)。所以,詞典模塊可能使一個抽象類型,將只有通過模塊的功能,如findWord(word,dictionary)訪問。在字典模塊上工作的人永遠不需要在該模塊外面偷看以檢查是否有人可能正在使用實現細節。

2

Fahad,

它們都是構建代碼的方式。如果你對函數式編程感興趣並想更好地理解它,我會看看lisp。 C++不是真正的函數導向,因爲每個函數都應該返回一個值,但C++函數可以返回void(使其成爲過程而不是函數),所以它不是一個真正的函數式編程語言。

「我從來沒有做過的模塊化編程,所以我只知道通過它包含的功能定義模塊」。模塊比功能更高。

這是一個好的開始。把一個函數想象成一個工作單元,當你有幾個函數可以以某種方式進行分組時,你可以將它們放入一個模塊中。所以,string.h有很多用於處理字符串的函數,但是你只需包含頭文件,並且你可以直接訪問所有這些函數。然後,您可以在其他項目中重複使用這些模塊,因爲您之前已經使用過這些模塊,並且已經(我假設)進行了調試和測試,並阻止人們重新發明輪子。關鍵是要從累積的經驗中受益。

我建議你認爲你想,寫了一些功能,想想你想如何組織其他開發人員使用的代碼項目。

希望這是一些對你有用的。

相關問題