C程式物件導向設計詳解

2021-08-25 05:31:44 字數 1445 閱讀 9279

學過c++或者其他物件導向的語言的都知道,物件導向程式設計有諸多好處。物件導向程式設計有幾個特徵:

物件導向程式設計中的概念主要包括:物件、類、資料抽象、繼承、動態繫結、資料封裝、多型性、訊息傳遞。通過這些概念物件導向的思想得到了具體的體現。

1)物件 物件是執行期的基本實體,它是乙個封裝了資料和操作這些資料的**的邏輯實體。

2)類 類是具有相同型別的物件的抽象。乙個物件所包含的所有資料和**可以通過類來構造。

3)封裝 封裝是將資料和****到一起,避免了外界的干擾和不確定性。物件的某些資料和**可以是私有的,不能被外界訪問,以此實現對資料和**不同級別的訪問許可權。

4)繼承 繼承是讓某個型別的物件獲得另乙個型別的物件的特徵。通過繼承可以實現**的重用:從已存在的類派生出的乙個新類將自動具有原來那個類的特性,同時,它還可以擁有自己的新特性。

5)多型 多型是指不同事物具有不同表現形式的能力。多型機制使具有不同內部結構的物件可以共享相同的外部介面,通過這種方式減少**的複雜度。

7)訊息傳遞 物件之間需要相互溝通,溝通的途徑就是物件之間收發資訊。訊息內容包括接收訊息的物件的標識,需要呼叫的函式的標識,以及必要的資訊。訊息傳遞的概念使得對現實世界的描述更容易。

8)方法 方法(method)是定義乙個類可以做的,但不一定會去做的事。

接下來,就開始一步一步實現以上的特徵吧。

抽象的關鍵就是類概念的出現,把方法和資料封裝在一起形成乙個類,這個類體現了不同物件之間的共同部分,這個過程就是抽象。

我們要實現乙個類的方法很簡單,使用c語言的struct型別即可。乙個例子如下:

struct sample
這樣就實現乙個「類」,這個「類」和c++類不同之處在於,struct sample只包含函式的指標而不是函式本身。所以在「物件建立」時與c++也有所不同。

建立「物件」時,分配struct sample型別的變數空間即可,一般使用動態分配空間函式malloc,分配空間後,還需要把look指標賦值,形成乙個完整的物件,如下:

int look()

sample *crete()

至此類的實現和物件的建立都已完成。

當我們實現了類,以及物件建立函式之後,在我們的程式中即可引用該「物件」。如下:

#include look();

return 0;

}

從上面可以看到,我們只能實現動態分配物件,而沒有像c++那樣可以靜態分配,不過沒關係,動態分配空間對我們來說也有好處。

C 物件導向設計

一.組合 復合 繼承,委託 1.composition 組合 has a 1.1 組合舉例 adapter 設計模式 關係 利用deque功能實現所有queue功能 template class queue size type size const reference front reference...

C 物件導向設計

一.組合 復合 繼承,委託 1.composition 組合 has a 1.1 組合舉例 adapter 設計模式 關係 利用deque功能實現所有queue功能 template class queue size type size const reference front reference...

物件導向程式初步設計

結構化程式設計方法又稱面向過程設計方法,結構化程式設計方式產生了結構化程式設計 主要特點是採用自頂向下逐步求解的程式設計方法。有三種基本控制結構構造 1 順序結構 2 選擇結構 3 重複結構 物件唯一性 每個物件都有自身唯一的標識,不同的物件不能有相同的標識 抽象性將具有一致的資料結構 屬性 和行為...