温馨提示×

如何通过typedef struct实现数据封装

小樊
81
2024-10-16 21:12:26
栏目: 编程语言

在C语言中,你可以使用typedef关键字和struct来创建一个新的数据类型,从而实现数据封装。数据封装是将数据(属性)和行为(方法)包装在一起的一种技术,它可以隐藏对象的内部实现细节,只暴露有限的接口供外部访问。

下面是一个简单的例子,展示了如何使用typedef struct实现数据封装:

#include <stdio.h>

// 定义一个结构体类型
typedef struct {
    int age;
    float height;
} Person;

// 为结构体类型定义一个访问函数(getter)
int get_age(Person *p) {
    return p->age;
}

float get_height(Person *p) {
    return p->height;
}

// 为结构体类型定义一个修改函数(setter)
void set_age(Person *p, int new_age) {
    p->age = new_age;
}

void set_height(Person *p, float new_height) {
    p->height = new_height;
}

int main() {
    // 创建一个Person对象
    Person person;

    // 使用setter函数设置对象的属性
    set_age(&person, 25);
    set_height(&person, 175.5);

    // 使用getter函数获取对象的属性
    printf("Age: %d\n", get_age(&person));
    printf("Height: %.2f\n", get_height(&person));

    return 0;
}

在这个例子中,我们首先定义了一个名为Person的结构体类型,它包含两个成员变量:ageheight。然后,我们为这个结构体类型定义了四个访问函数(getter)和修改函数(setter),分别用于获取和设置ageheight的值。最后,在main函数中,我们创建了一个Person对象,并使用这些函数来访问和修改它的属性。

通过这种方式,我们可以将Person对象的内部实现细节隐藏起来,只暴露出有限的接口供外部访问。这就是数据封装的基本思想。

0