温馨提示×

c语言子类怎么调用父类构造函数

小亿
156
2023-11-30 19:22:59
栏目: 编程语言

在C语言中,没有直接的机制来定义类和子类,也没有继承的概念。但是,可以通过结构体和函数指针来模拟类和子类的关系,并使用函数指针来调用父类的构造函数。

下面是一个示例代码:

#include <stdio.h>

// 定义父类结构体
typedef struct {
    int x;
} Parent;

// 父类的构造函数
void parent_constructor(Parent* parent, int x) {
    parent->x = x;
}

// 定义子类结构体
typedef struct {
    Parent parent;  // 子类中包含一个父类对象
    int y;
} Child;

// 子类的构造函数
void child_constructor(Child* child, int x, int y) {
    parent_constructor(&(child->parent), x);  // 调用父类的构造函数
    child->y = y;
}

int main() {
    Child child;
    child_constructor(&child, 10, 20);
    
    printf("x: %d\n", child.parent.x);
    printf("y: %d\n", child.y);
    
    return 0;
}

在这个示例代码中,我们通过定义一个父类结构体Parent和一个子类结构体Child来模拟类和子类的关系。父类结构体中只包含一个x成员变量,子类结构体中除了包含父类对象外,还有一个y成员变量。

在父类的构造函数parent_constructor中,我们将传入的参数x赋值给父类的x成员变量。

在子类的构造函数child_constructor中,我们首先调用父类的构造函数parent_constructor来初始化父类对象,然后将传入的参数y赋值给子类的y成员变量。

最后,在main函数中,我们创建了一个子类对象child,并调用子类的构造函数child_constructor来初始化它。然后,我们打印出父类对象的x成员变量和子类对象的y成员变量的值。

0