?? 從c到c++看對象的產生.txt
字號:
作者:rick1126
email: rickzhang@sina.com
日期:8/8/2001 4:20:33 PM
1. 對象解決了數據和方法的封裝以及變量的名字空間問題
1) 名字空間
以前的C里面, 所有變量包括DLL都共享同一個名字空間, 為此你不能保證每一個第三方提供的DLL都是互不沖突的.
2) 封裝, 抽象, 繼承, 多態
[封裝]
封裝是針對對象而言的, 以前我們封裝數據和相應操作的方法是利用DLL, 現在我們可以使用對象將相關數據封裝起來. 對象比較DLL更加符合我們顯示世界的認知單位
[抽象]
抽象就是將現實世界中的對象進行一般化, 為此我們通常在進行系統分析和設計的時候, 將最最特殊的問題抽象成為類型 -- 注意, 特殊就是我們所關心的元素量最少, 最簡單, 由簡到繁的設計方式使得我們的系統更具擴展性.
[繼承]
繼承使得對象之間有了聯系和層次. 通過向類型添加需要關心的元素, 新的類型派生出來.
[多態]
多態是現實世界的一種對待問題的方式
2. 從結構的角度看待對象
1) 類就是具有生命力的結構
結構是來自C的用戶自定義類型方式, 加上方法就使得結構實例有了自己的"行為"能力, 成為"活生生"的對象. 這使得它具備了邏輯上的一種認識層次. 從計算機角度看, 結構就是2進制數據的結構化存儲, 是對于內存空間的一種單元化使用, 添加了方法, 就是附加了相對應的函數指針, 有了這種認識, 對于我們以后學習COM涉及的虛函數和VTable都是很有幫助的. class和structure的區別僅僅在于出現的前后和默認存取類型的不同(class--private, structure--public), 所以我們以后接觸到的COM的interface就是structure的宏定義而已
上面就是目前我對于類和對象的粗淺認識, 希望各位網友指正.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -