Gobject 用C實現C 中的類

2021-09-10 09:44:59 字數 1269 閱讀 7171

// 宣告

typedef struct _myobjectclass myobjectclass;

// 定義

typedef struct _myobject myobject;

typedef struct _myobjectclass myobjectclass;

// myobject當前的類,my_object字首,g_type_object父類

g_define_type(myobject, my_object, g_type_object);

gobject 中的『類結構體』的作用是面向 gobject 型別系統宣告乙個『類』的型別,gobject 的『類結構體』通常需要從乙個叫做 gobjectclass 的『類結構體』派生而成

宣告變數:init函式安裝g_object_class_install_property+列舉

獲取/設定屬性值:g_object_set/get_property

宣告函式:函式嚴格根據繼承的父類設定

類的建構函式:

class_init: 成員函式的註冊

_init:成員變數的註冊

理解迴圈引用:ref/unref

呼叫父類的析構:g_object_class (parent_class)

#define my_is_object(obj) (g_type_check_instance_type(my_obj, my_object_get_type()))

[用c++模擬](

#define boy(obj) (g_type_check_instance_cast((obj),boy_type,boy))

[gobject物件強制轉換為boy物件](

[理解***_get_type](

pmdlist *list = g_object_new (pm_type_dlist,

"head", null,

"tail", null,

null);/* 要記得鍵值對引數之後,要以 null 收尾 */

null->ready分配資源,

null->ready向上通知

ready->null向下通知

結構體之間的擷取
[c++理解gobject]

[系統學習gobject]

用C語言實現C 中類的封裝繼承多型

作用 標頭檔案中使用,防止標頭檔案被多重呼叫 作為測試使用,省去注釋 的麻煩 作為不同角色或者場景的判斷使用。使用 把頭檔案的內容都放在 ifndef和 endif中 ifndef 標識 define 標識 endif 解釋 標識 在理論上來說可以是自由命名的,但每個標頭檔案的這個 標識 都應該是唯...

C語言實現C 中的類

華科複試面試題 c語言如何實現c 中的類 include c 語言沒有類,但可以用結構體充當乙個類 與類不同,結構體只能定義變數,不能夠定義函式,可以通過函式指標的方法來實現其功能 定義 類 的成員變數以及方法 typedef struct personperson 定義函式功能 void eatf...

C語言實現C 中的類

華科複試面試題 c語言如何實現c 中的類 include c 語言沒有類,但可以用結構體充當乙個類 與類不同,結構體只能定義變數,不能夠定義函式,可以通過函式指標的方法來實現其功能 定義 類 的成員變數以及方法 typedef struct personperson 定義函式功能 void eatf...