- 最後登錄
- 2024-5-1
- 在線時間
- 433 小時
- 註冊時間
- 2008-8-26
- 閱讀權限
- 20
- 精華
- 0
- UID
- 4851850
- 帖子
- 133
- 積分
- 134 點
- 潛水值
- 21652 米
| 基本來說就是struct、pointer的結合,舉例來說:
typedef struct{
int a;
}ClassA;
int ClassA_get_a(ClassA* self);
void ClassA_set_a(ClassA* self, int a);
這是最基礎的class寫法,繼承在C上做不到,只能用組合來模擬;封裝把struct內容放在.c中就好,header中只暴露指標;多型比較複雜,要用function pointer跟union來做
原則上來說,C在模擬物件導向不是做不到但是非常麻煩,要手刻非常多程式碼,除非你用C吃飯不然性價比不高(當然有個好處是會對OO有更深一層的理解)... |
|