意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

c语言怎么实现继承和多态

来源:恒创科技 编辑:恒创科技编辑部
2024-03-18 14:22:59

在C语言中,可以通过结构体和函数指针实现继承和多态的功能。

  1. 继承:

定义一个基类结构体,包含所有子类共有的成员变量和方法。然后定义子类结构体,其中包含基类结构体作为第一个成员变量,这样就可以实现继承的效果。

示例代码如下:


c语言怎么实现继承和多态

// 基类结构体
typedef struct {
    int x;
    int y;
} Base;

// 子类结构体
typedef struct {
    Base base;
    int z;
} Derived;

// 创建一个Derived对象
Derived obj;
obj.base.x = 1;
obj.base.y = 2;
obj.z = 3;
  1. 多态:

定义一个包含函数指针的结构体,将方法的具体实现放在不同的函数中,然后通过函数指针调用不同的方法。

示例代码如下:

// 基类结构体
typedef struct {
    void (*print)(void);
} Base;

// 具体实现方法
void base_print(void) {
    printf("Base print\n");
}

// 子类结构体
typedef struct {
    Base base;
} Derived;

// 具体实现方法
void derived_print(void) {
    printf("Derived print\n");
}

int main() {
    Derived obj;
    obj.base.print = derived_print;
    
    Base* base_ptr = (Base*)&obj;
    base_ptr->print(); // 调用Derived的print方法
    
    return 0;
}

通过以上方法,就可以在C语言中实现继承和多态的功能。

上一篇: c语言bool函数的使用方法是什么 下一篇: pg数据库怎么批量导入数据