C++程式設計雜談:物件導向 (轉)
在我們使用C的年代裡面,思想是結構化的,你的C語言老師可能會不斷的教導你怎樣使用結構化的方法來完成一段,同時,你可能也知道在軟體開發中的一個重要定律(Wirth定律):
程式 = 演算法 + 資料結構
在結構化設計中人們通常是這樣來看待這個定律的:
程式 =(演算法) + (資料結構)
例如:(我仍然使用C++標準庫來寫下面的程式碼,方便和以後的程式碼對比)
#include #include Class dog (屬性) Color Size (行為) Run yelp 如果是結構話的: Struct dog Color Size (依賴關係) Run(dog somedog) yelp(dog somedog)
物件 = (演算法 + 資料結構)
程式 = 物件 + 物件
表面上似乎二者之間並沒有太大的差別,但就是這個差別為我們帶來了巨大的變革。
有這樣一句話:“程式設計是在中反映世界”,我覺得再貼切不過,物件導向(-Oriented)對這種說法的體現也是最優秀的,比如在前面的例子中,我們設計的資料結構是一個學生成績的表現,而對資料結構的操作()是分離的,雖然這些操作是針對這種資料結構而產生的。為了管理大量的資料,我們不得不小心翼翼地使用它們。
物件導向中一個重要的概念就是類(class)C++中是它。類和struct資料結構最大的不同就是提供了限制級別(可見性)的保護——我們先拋開復雜的繼承與多型不談。正是透過這種方式,我們可以對資料成員提供非常有效的保護,同時使資料結構更符合現實行為。
在物件導向的概念中,前面的資料結構表示如下:
我希望我前面的表達足夠的清楚,物件導向不是這樣一篇文章可以描述的清楚的,我這裡只是描述了一個發展過程的片面。我希望它能成為一個引子,能夠為初學者提供一些幫助。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-996551/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物件導向程式設計C++物件程式設計C++
- 淺談物件導向程式設計物件程式設計
- C++——談談你對物件導向程式設計的認識C++物件程式設計
- C++與物件導向程式設計C++物件程式設計
- 淺談PHP物件導向程式設計PHP物件程式設計
- 再談javascript物件導向程式設計JavaScript物件程式設計
- 淺談Javascript物件導向程式設計JavaScript物件程式設計
- java物件導向程式設計(轉)Java物件程式設計
- C++模組2:物件導向程式設計C++物件程式設計
- 談談“物件導向”與“程式導向”物件
- 理解C++物件導向程式設計[多型性部分] (轉)C++物件程式設計多型
- 物件導向程式設計:Java複雜資料型別用法(轉)物件程式設計Java資料型別
- 物件導向的JavaScript程式設計 (轉)物件JavaScript程式設計
- C++物件導向程式設計_Part1C++物件程式設計
- 物件導向程式設計(C++篇4)——RAII物件程式設計C++AI
- 物件導向程式設計物件程式設計
- 物件導向程式設計(C++篇3)——析構物件程式設計C++
- 物件導向程式設計(C++篇2)——構造物件程式設計C++
- C++ 物件導向高階設計C++物件
- iOS 開發之 OOA (物件導向分析) & OOD (物件導向設計)& OOP (物件導向程式設計)iOS物件OOP程式設計
- [.net 物件導向程式設計基礎] (2) 關於物件導向程式設計物件程式設計
- 十三、物件導向程式設計物件程式設計
- js物件導向程式設計JS物件程式設計
- 程式設計思想 物件導向程式設計物件
- 十六、物件導向程式設計物件程式設計
- perl 物件導向程式設計物件程式設計
- LotusScript物件導向程式設計物件程式設計
- Javascript 物件導向程式設計JavaScript物件程式設計
- JS物件導向程式設計(一):物件JS物件程式設計
- C++ 遞迴與物件導向程式設計基礎C++遞迴物件程式設計
- Scala的物件導向程式設計物件程式設計
- JavaScript物件導向程式設計理解!JavaScript物件程式設計
- Python物件導向程式設計Python物件程式設計
- Python 物件導向程式設計Python物件程式設計
- Javascript 物件導向程式設計(一)JavaScript物件程式設計
- Javascript 物件導向程式設計(二)JavaScript物件程式設計
- Javascript 物件導向程式設計(三)JavaScript物件程式設計
- JS物件導向的程式設計JS物件程式設計