簡單說,gobject就是乙個讓c語言實現物件導向的工具。或者是讓gobject子類化的過程
以下就是步驟:
1、在.h檔案中包含
2、在.h檔案中建立例項結構體和類結構體,以封裝乙個類。
3、在.h檔案中定義p_type_t巨集,宣告p-t-get-type函式。
4、在.c檔案中呼叫g_define_type巨集,產生型別註冊**.
例項:hw-dlist.h檔案內容
#ifndef hwdlist_h
#define hwdlist_h
#include #define hw_type_dlist (hw_dlist_get_type());
typedef struct _hwdlistnode hwdlistnode;
struct _hwdlistnode ;
typedef struce _hwdlist hwdlist;
struct _hwdlist ;
typedef struce _hwdlistclass hwdlistclass; //類結構體
struct _hwdlistclass ;
// gtype hw_dlist_get_type(void);
#endif
// 以上的例項結構體和類結構體合起來就可以成為乙個類,叫做 hwdlist類
// 當gobject的例項結構體和類結構體(即 gobject和gobjecetclass)分別是例項結構體和類結構體的第乙個成員時,表示 hwdlist類 繼承自 gobject類
hw-dlist.c檔案內容
#include "hw-dlist.h"
// 以下這個巨集相當於hw_dlist_get_type()函式,
g_define_type (hwdlist, hw_dlist, g_type_object);
// hwdlist 是這個類的名字
// hw_dlist 是這個函式的字首
// g_type_object 指明了hwdlist的父型別是 g_type_object
static void hw_dlist_init(hwdlist *self)
static void hw_dlist_class_init(hwdlistclass *class)
main.c 這裡包括了類的例項化等
/類的例項化
//hwdlist *dlist; //類的例項化,即建立類的乙個物件
//dlist = g_object_new(hw_type_dlist,null); //物件例項化,即對類物件進行例項化,此時g_object_new()為例項分配了記憶體並初始化,例項的引用計數為1
//g_object_unref(dlist); //銷毀dlist 這個例項,例項的引用計數將減一
// 以上建立類的物件,物件的例項化,可以合併起來
//hwdlist *dlist = g_object_new(hw_type_dlist,null); //此時,計算機動態分配了記憶體,並用dlist這個指標指向這一塊記憶體區域的首位址。
#include "hw-dlist.h"
int main()
list = g_object_new(hw_type_dlist, null);
if(g_is_object(list))
return 0;
}
參考: 乙個簡單的日誌封裝類
記錄乙個自己封裝的日誌類,不完善的地方,望指點。其中,包含寫檔案和輸出到終點,定義日誌等級,定義日誌儲存檔案時間間隔,日誌檔案個數等 並統一日誌輸出格式 檔名,方法名等資訊 import logging from logging import handlers class logger object...
乙個最簡單的類JQuery封裝
有時候在寫一些練習或者小的專案時,我們可能只想用用jquery的 選擇器,好用的hide show等等一些基礎的api,那麼我們又不想因為這麼幾個api來引入乙個jquery的js檔案,那麼自己封裝乙個最好不過了。function document function selector domobje...
乙個簡單的檔案查詢C 封裝類
平時要用到列舉系統硬碟上的檔案的機會比較多,每次幾乎都會重複那一些步驟,而且要列舉不同的檔案型別也是相當的不方便,於是簡單的封裝了乙個檔案查詢類,暫不支援多執行緒,不過 函式的使用相當的方便與簡潔 封裝的 稍後上傳csdn資源 使用這個類的示例如下 首先包含類標頭檔案 lxfilefinder.h ...