libvirt裡的物件導向的C語言

2022-08-03 07:57:09 字數 1112 閱讀 9726

c語言:類的宣告和定義

1

//通用父類的定義

2struct

_virclass ;

11 typedef struct

_virclass virclass;

12 typedef virclass *virclassptr;

1314

//通用物件的定義

15struct

_virobject s;

26} u;

27virclassptr klass;

28};

2930

struct

_virobjectlockable ;

3435

//各個子類的宣告與類物件指標的例項化

36static

int37 virdatatypesonceinit(void)38

74//

定義這些指標的用途就是後續需要建立子類的物件是作為型別引數傳入,用來區分不同的物件例項。同時,也是最主要的,指定了子類的物件的記憶體分配大小。

c語言:按乙個物件型別來new乙個物件例項

1

//類似c++的new操作運算子。oh, my gold!

2void *virobjectnew(virclassptr klass)320

//如此,可以看乙個子類的宣告和分配例子:

21virstreamptr virgetstream(virconnectptr conn)

2234

35struct

_virstream ;

43 typedef struct

_virstream virstream;

44 typedef virstream *virstreamptr;

4546

//當呼叫 virobjectnew(virstreamclass)的時候,virstreamclass的objectsize在class_new的時候已經設定為sizeof(virstream)

47//

所以最後得到乙個正確的(* virstreamptr)物件例項。

C 的物件導向

c 是物件導向的應用,與c面向過程相比更加簡單,更加容易理解,更容易應用。c 物件導向來說具備三個基本點 封裝 繼承和多型。封裝不是c 特有的,c語言也包含了封裝,c的封裝只包含了邏輯,而c 的封裝則包含了資料和邏輯,物件導向的封裝更加完美。c 的類作為物件的抽象,它只公開部分的物件,保證此類的安全...

物件導向的c 和面向過程的c

以前學c的時候,老師就說c是面向過程 procedural 的語言,c 是物件導向 object oriental 的語言。至於 面向過程 是什麼意思,而 物件導向 又該怎樣理解,一直沒講的很通透。也就那樣罷了。現在想認真地學一下c 所以一定要把這個問題弄清楚,不然心裡糾結便學不下去了。那麼究竟 面...

C語言的物件導向

看了qualcomm的 inte ce,決定把它抄下來。主要還是方便日後查詢。1.define the structure of virtual function table 2.define the structure of class 3.about the size of structure ...