(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 物件導向的三大特徵 封裝 繼承 多型。類包括屬性和方法。在設計類時,屬性和方法寫在一起,屬性和方法統稱為成員,屬性稱為成員屬性或者成員變數,行為稱為成員函式或者成員方法。類在設計時,可以把屬性和方法放在不同的許可權下,可以對它們加以控制。訪問許可權...