基本信息
源码名称:lw_oopc源码及DEMO
源码大小:0.06M
文件格式:.zip
开发语言:C/C++
更新时间:2023-06-16
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
LW_OOPC是Light-Weight Object-Oriented Programming in(with) C的缩写,总共一个.h文件,20个宏,约130行代码,非常的轻量级,但却很好的支持了很多面向对象的特性,比如继承、多态,可以优美的实现面向接口编程。

#include "lw_oopc.h"

INTERFACE(IMoveable)
{
    void (*move)(IMoveable* t);     // Move行为
};

ABS_CLASS(Animal)
{
    char name[128];     // 动物的昵称(假设小于128个字符)
    int age;            // 动物的年龄

    void (*setName)(Animal* t, const char* name);   // 设置动物的昵称
    void (*setAge)(Animal* t, int age);             // 设置动物的年龄 
    void (*sayHello)(Animal* t);                    // 动物打招呼
    void (*eat)(Animal* t);                         // 动物都会吃(抽象方法,由子类实现)
    void (*breathe)(Animal* t);                     // 动物都会呼吸(抽象方法,由子类实现)
    void (*init)(Animal* t, const char* name, int age); // 初始化昵称和年龄
};

CLASS(Fish)
{
    EXTENDS(Animal);        // 继承Animal抽象类
    IMPLEMENTS(IMoveable);  // 实现IMoveable接口

    void (*init)(Fish* t, const char* name, int age);
};

CLASS(Dog)
{
    EXTENDS(Animal);        // 继承Animal抽象类
    IMPLEMENTS(IMoveable);  // 实现IMoveable接口


    void(*init)(Dog* t, const char* name, int age);
};