- 论坛徽章:
- 3
|
本帖最后由 captivated 于 2012-06-26 21:03 编辑
object oriented c programming?
最简单的使用C进行OOP的技法是使用宏, 结构体和函数指针:
#define COMMON_CTRL \
int x; \
int y; \
int w; \
int h; \
int (*create)(...); \
int (*destroy)(...); \
void (*show)(int x, int y); \
void (*repaint)(int x, int y, int w, int h);
typedef struct comm_ctrl {
COMMON_CTRL
} comm_ctrl_t;
如何继承?
typedef struct rect_ctrl {
COMMON_CTRL
void (*update)(int x, int y, int w, int h);
} rect_ctrl_t;
如何override? 这太easy: 给结构体变量中的函数指针赋值...
----------------------------------------------------------
上面是最简单的使用C构建OOP体系的技法.
稍微复杂一点的, 会使用链表之类的构建一个"认真的"OOP体系. 这个嘛, 你不如去看看object oriented c programming 这书(其实是我不大会, 不然就顺便卖弄下)?
-----------------------------------------------------------------------------------------------------
最后... 什么模式设计的狗屁... 好的码工几乎很自然地知道该怎么分离模块... 那样写是好的, 另外一种写法不好, 码工的经验和本能判断.
|
|