02C 複習 資料抽象 資料封裝 介面(抽象類)

2022-10-08 19:03:14 字數 1872 閱讀 8649

資料抽象是指,只向外界提供關鍵資訊,並隱藏其後台的實現細節,即只表現必要的資訊而不呈現細節。資料抽象是一種依賴於介面和實現分離的程式設計(設計)技術。

c++類為資料抽象提供了可能。它們向外界提供了大量用於操作物件資料的公共方法,也就是說,外界實際上並不清楚類的內部實現。

資料抽象有兩個重要的優勢:

(1)類的內部受到保護,不會因無意的使用者級錯誤導致物件狀態受損。

(2)類實現可能隨著時間的推移而發生變化,以便應對不斷變化的需求,或者應對那些要求不改變使用者級**的錯誤報告。

如果只在類的私有部分定義資料成員,編寫該類的作者就可以隨意更改資料。如果實現發生改變,則只需要檢查類的**,看看這個改變會導致哪些影響。如果資料是公有的,則任何直接訪問舊表示形式的資料成員的函式都可能受到影響。

c++ 程式中,任何帶有公有和私有成員的類都可以作為資料抽象的例項。請看下面的例項:

using namespace std;

class adder

// 對外的介面

void addnum(int number)

// 對外的介面

int gettotal()

;private:

// 對外隱藏的資料

int total;

};int main( )

private:

double length; // 長度

double breadth; // 寬度

double height; // 高度

};

變數 length、breadth 和 height 都是私有的(private)。這意味著它們只能被 box 類中的其他成員訪問,而不能被程式中其他部分訪問。這是實現封裝的一種方式。

為了使類中的成員變成公有的(即,程式中的其他部分也能訪問),必須在這些成員前使用 public 關鍵字進行宣告。所有定義在 public 識別符號後邊的變數或函式可以被程式中所有其他的函式訪問。

把乙個類定義為另乙個類的友元類,會暴露實現細節,從而降低了封裝性。理想的做法是盡可能地對外隱藏每個類的實現細節。

介面描述了類的行為和功能,而不需要完成類的特定實現。

c++ 介面是使用抽象類來實現的,抽象類與資料抽象互不混淆,資料抽象是乙個把實現細節與相關的資料分離開的概念。

如果類中至少有乙個函式被宣告為純虛函式,則這個類就是抽象類。純虛函式是通過在宣告中使用 「= 0」 來指定的,如下所示:

;
設計抽象類(通常稱為 abc)的目的,是為了給其他類提供乙個可以繼承的適當的基類。抽象類不能被用於例項化物件,它只能作為介面使用。如果試圖例項化乙個抽象類的物件,會導致編譯錯誤。

因此,如果乙個 abc 的子類需要被例項化,則必須實現每個虛函式,這也意味著 c++ 支援使用 abc 宣告介面。如果沒有在派生類中過載純虛函式,就嘗試例項化該類的物件,會導致編譯錯誤。

可用於例項化物件的類被稱為具體類。請看下面的例項,基類 shape 提供了乙個介面 getarea(),在兩個派生類 rectangle 和 ******** 中分別實現了 getarea():

using namespace std;

// 基類

class shape

void setheight(int h)

protected:

int width;

int height;};

// 派生類

class rectangle: public shape

};class ********: public shape};

int main(void)

**

02 C 資料型別

c 共有15個預定義型別,其中13個是值型別,兩個是引用型別string和object 整形 共8個 sbyte 8位有符號整數 128到127 short 16位有符號整數 32768到32767 int 32位有符號整數 2147483648到2147483647 long 64位有符號整數 2...

C 第二季 02(C 資料封裝)

所有的c 程式都有以下兩個基本要素 封裝是物件導向程式設計中的把資料和運算元據的函式繫結在一起的乙個概念,這樣能避免受到外界的干擾和誤用,從而確保了安全。資料封裝引申出了另乙個重要的oop概念,即資料隱藏。資料封裝是一種把資料和運算元據的函式 在一起的機制,資料抽象是一種僅向使用者暴露介面而把具體的...

C 資料抽象,C 資料封裝

資料抽象是指,只向外界提供關鍵資訊,並隱藏其後台的實現細節,即只表現必要的資訊而不呈現細節。資料抽象是一種依賴於介面和實現分離的程式設計 設計 技術。因此,我們可以說電視把它的內部實現和外部介面分離開了,您無需知道它的內部實現原理,直接通過它的外部介面 比如電源按鈕 遙控器 聲量控制器 就可以操控電...