資料抽象是指,只向外界提供關鍵資訊,並隱藏其後台的實現細節,即只表現必要的資訊而不呈現細節。
資料抽象是一種依賴於介面和實現分離的程式設計(設計)技術。
c/c++的學習裙【七一二 二八四 七零五 】,無論你是小白還是高階者,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多乾貨和技術資料分享!
因此,我們可以說電視把它的內部實現和外部介面分離開了,您無需知道它的內部實現原理,直接通過它的外部介面(比如電源按鈕、遙控器、聲量控制器)就可以操控電視。
現在,讓我們言歸正傳,就 c++ 程式設計而言,c++ 類為資料抽象提供了可能。它們向外界提供了大量用於操作物件資料的公共方法,也就是說,外界實際上並不清楚類的內部實現。
例如,您的程式可以呼叫sort()函式,而不需要知道函式中排序資料所用到的演算法。實際上,函式排序的底層實現會因庫的版本不同而有所差異,只要介面不變,函式呼叫就可以照常工作。
在 c++ 中,我們使用類來定義我們自己的抽象資料型別(adt)。您可以使用類iostream的cout物件來輸出資料到標準輸出,如下所示:
#include using namespace std;
int main( )
// 對外的介面
void addnum(int number)
// 對外的介面
int gettotal()
; private:
// 對外隱藏的資料
int total;
};int main( )
{ adder a;
a.addnum(10);
a.addnum(20);
a.addnum(30);
cout << "total " << a.gettotal() 當上面的**被編譯和執行時,它會產生下列結果:
total 60
上面的類把數字相加,並返回總和。公有成員addnum和gettotal是對外的介面,使用者需要知道它們以便使用類。私有成員total是使用者不需要了解的,但又是類能正常工作所必需的。
抽象把**分離為介面和實現。所以在設計元件時,必須保持介面獨立於實現,這樣,如果改變底層實現,介面也將保持不變。
在這種情況下,不管任何程式使用介面,介面都不會受到影響,只需要將最新的實現重新編譯即可。
C物件導向程式設計 抽象資料型別(2)
實現 set main.c 可以成功編譯,但是在編譯和執行程式之前,我們必須實現抽象資料型別和記憶體管理,如果乙個物件不儲存任何資訊,並且每乙個物件都至少屬於乙個set,那麼我們可以用乙個唯一的較小的正整數值來表示物件和每乙個set,而這些正整數值可以使用乙個陣列heap 中的索引來表示。如果乙個物...
物件導向 抽象
物件導向分析與設計的主要任務是,找出類和物件,構建物件模型。物件模型的主要要素 抽象 封裝 模組化與層次結構。物件模型的次要要素 型別 併發 持久。抽象描述了乙個物件的基本特徵,可以將這個物件與所有其他型別的物件區分開來,因此提供了清晰定義的概念邊界,它與觀察者的角度有關。抽象關注乙個物件的外部檢視...
物件導向 抽象
物件導向分析與設計的主要任務是,找出類和物件,構建物件模型。物件模型的主要要素 抽象 封裝 模組化與層次結構。物件模型的次要要素 型別 併發 持久。抽象描述了乙個物件的基本特徵,可以將這個物件與所有其他型別的物件區分開來,因此提供了清晰定義的概念邊界,它與觀察者的角度有關。抽象關注乙個物件的外部檢視...