溫馨提示×

如何通過typedef struct實現數據封裝

小樊
100
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女