C開發經驗1 物件導向封裝

2021-07-26 19:17:44 字數 1945 閱讀 3837

(1)前言   

物件導向的封裝,主要是通過類的體現,通過使用類對成員函式、方法進行封裝,從而實現模組化的思想,提公升了開發的效率。

物件導向是一種思想,實際上跟某種語言沒有關係,理論上組合語言也是能夠進行物件導向開發的,不過比較複雜而已(早期的unix就是使用組合語言開發)。

當然c語言也是可以實現物件導向開發的(理論上c++的編譯器大部分都是c寫的),在一些大型的專案**中(比如linux核心),這種思想更加體現得淋漓盡致。

我們開始對c進行物件導向封裝。

c語言的物件導向封裝,主要是通過結構體實現的,直接上**,以我自己封裝的鍊錶為例     

(2)生成乙個標頭檔案:arraylist.h  

typedef struct arraynode

arraynode,*arraylist;

arraylist new_arraylist();

其中:(1)這個結構體包含了兩類成員,一類為變數成員,一類為函式指標。

當然,針對指標有一些知識點需要補充一下

typedef  :主要是用來給結構體起別名的

typedef struct arraynode

}  a;

這樣定義後   struct arraynode  a  => a a;簡化了定義的寫法

void(*maopaosort)(struct arraynode *);

這個是指指向函式的指標,先看乙個簡單的    int (*sort)()   這個的寫法,是指生命乙個函式指標 sort,這個指標指向乙個函式,函式的要求為(沒有引數,返回int型別):int  xx();

特別要注意的是, int (*sort)()   與 int *  sort()  是很大不同的,前者是指向函式的指標,後者是指返回指標變數的函式。

有了這個準備知識後, void(*maopaosort)(struct arraynode *);  這個是指 生命乙個 sortnode的指標,這個指標指向函式   void maopaosort(strunc arraynode *);

這就是對結構體的宣告。

arraylist new_arraylist();  這個主要是生命一下鍊錶類的建構函式,這個會在arraylist.c中實現

(3)生成乙個標頭檔案:arraylist.c中實現函式

首先看一下maopaosort函式的具體實現

void maopaosort(arraylist obj_arraylist)}}

}很簡單,就實現乙個氣泡排序。

接著來看一下實現的建構函式arraylist new_arraylist(); 

arraylist new_arraylist()

這個函式主要實現對結構體分配記憶體空間,然後 對結構體內的函式指標指向具體的某個函式。

(4)再來看看在main裡面的呼叫

void main()

obj_arraylist->printnode(obj_arraylist);

printf("請輸入需要刪除的節點資料\n");

scanf("%d",&c);

obj_arraylist->deletenode(obj_arraylist,c);

obj_arraylist->printnode(obj_arraylist);

obj_arraylist->convert2(obj_arraylist);

//obj_arraylist->convert(obj_arraylist,obj_arraylist->head,0);

obj_arraylist->printnode(obj_arraylist);

obj_arraylist->maopaosort(obj_arraylist);

obj_arraylist->printnode(obj_arraylist);

system("pause");

}通過這樣的方式,就可以實現對c**的封裝,有助於對大型專案的開發

C 物件導向封裝

一 什麼叫做物件導向封裝?封裝的概念 隱藏物件的屬性和實現細節,僅對外公開介面,控制在程式中屬性的讀取和修改的訪問級別。二 物件導向封裝有什麼好處 為什麼要封裝 封裝的目的 是增強安全性和簡化程式設計,使用者不必了解具體的實現細節,而只是要通過外部介面,以特定的訪問許可權來使用類的成員。三 如何使用...

JavaSE階段1 物件導向封裝

封裝 繼承 多型 封裝 隱藏物件的屬性和實現細節,僅對外提供介面 好處 1.將變化隔離 2.便於使用 3.提高重用性 4.提高安全性 1.呼叫同名的變數資訊 成員變數 this.變數名 2.呼叫同類中其它函式資訊,這時候this可以省略不寫 3.在本類中,通過構造函式呼叫其它建構函式 注意 1.函式...

c 物件導向之封裝

該系列是本人對c 的物件導向的知識點的筆記整理。c 物件導向的三大特徵 封裝 繼承 多型。類包括屬性和方法。在設計類時,屬性和方法寫在一起,屬性和方法統稱為成員,屬性稱為成員屬性或者成員變數,行為稱為成員函式或者成員方法。類在設計時,可以把屬性和方法放在不同的許可權下,可以對它們加以控制。訪問許可權...