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

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;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值