您的位置:首页 > 编程语言 > C语言/C++

{C语言}之 轻量级的面向对象 C编程 框架 LW_OOPC

2013-03-19 11:07 260 查看
LW_OOPC是一套輕量級的面向對象C語言編程框架。它是一套C語言的宏,總共1個.h文件(如果需要內存泄漏和調試打印支持,需要增加1個.c文件(lw_oopc.c,約145行)),20個宏,約130行代碼,非常的輕量級,但卻很好的支持了很多面向對象的特性,比如繼承、多態,可以優美的實現面向接口編程。

注意,這裏特別強調一下,使用LW_OOPC的前提是:在C語言下。如果您所在的團隊已經在使用C++,那麽LW_OOPC對于這種情形是沒有價值的。也就是說,LW_OOPC希望能夠幫助到那些懂OO的程序員,即便是在用C語言編程,依然能夠編寫出面向對象的程序。 ---《开源中国》http://www.oschina.net/p/lwoopc

面向对象OO(Object Oriented):封装、继承、多态、抽象(abstract)、接口(interface)

接口>> 对于实现我的所有类,看起来都应该象我现在这个样子。

(人是接口,你和我的说话就是 人的说话,也就是实现了人的说话接口,人说话有很多种,我是一种你是一种)

抽象:人说话是接口,中国人说话都用中文,普通话就是一个抽象方法(函数),而你我说普通话就是实现了这个抽象方法。

------------------ lw_oopc 的基本原理 ---- define

#define CLASS(c_name)
\

typedef struct c_name c_name; \

struct c_name

#define NEW(type) \

type *type##_new() \

{ \

type *new_v=(type*)malloc(sizeof(type));
\

return new_v;
\

}

CLASS(Class)

{

int index;

};

NEW(Class) //当编译器编译时就自动得到 Class *Class_new() 函数,哈哈,有点像C++模版

int main(void)

{

Class* a=Class_new();

a->index=1;

printf("%d",a->index);

//getch();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: