面向對象在思維不在語言之C 語言多態實現例子

//C語言多態例子 
//[email protected]
#include <stdio.h>
typedef struct
{
    void (*run)(void);
    void (*fly)(void);
    void (*speak)(void);
}funInterface_t;

//小紅實現
static void xiaohongRun(void)
{
    printf("xiaohong run....\n");
}
static void xiaohongFly(void)
{
    printf("xiaohong fly...\n");
}
static void xiaohongSpeak(void)
{
    printf("xiaohong speak...\n");
}
funInterface_t xiaohong_implement_funInterface =
{
    .run = xiaohongRun,
    .fly = xiaohongFly,
    .speak =xiaohongSpeak,
};
//小明實現
static void xiaomingRun(void)
{
    printf("xiaoming run....\n");
}
static void xiaomingFly(void)
{
    printf("xiaoming fly...\n");
}
static void xiaomingSpeak(void)
{
    printf("xiaoming speak...\n");
}
funInterface_t xiaoming_implement_funInterface =
{
    .run = xiaomingRun,
    .fly = xiaomingFly,
    .speak= xiaomingSpeak,
};

int main(void)
{
    funInterface_t* xiaohong= &xiaohong_implement_funInterface;
    funInterface_t* xiaoming= &xiaoming_implement_funInterface;
    printf("run....\n");
    xiaohong ->run();
    xiaohong ->fly();
    xiaohong ->speak();
    xiaoming ->run();
    xiaoming ->fly();
    xiaoming ->speak();
    return 0;
}
//C語言在線測試網站
//http://www.dooccn.com/c/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章