[c언어] C 언어에서의 캡슐화 구현 방법

구조체를 이용한 캡슐화

typedef struct {
    int value;
    void (*setValue)(int);
    int (*getValue)(void);
} Encapsulation;

void setValue(int val) {
    // 캡슐화된 멤버에 값 설정
}

int getValue(void) {
    // 캡슐화된 멤버의 값 반환
}

int main() {
    Encapsulation obj;
    
    obj.value = 10;
    obj.setValue = setValue;
    obj.getValue = getValue;

    obj.setValue(20);
    int val = obj.getValue();
    
    return 0;
}

위의 예시에서, Encapsulation 구조체에는 값을 저장하는 value 멤버와 이 값을 설정하거나 반환하는데 사용되는 setValue, getValue 함수 포인터가 포함되어 있습니다. 이를 이용하여 구조체 내부의 데이터와 기능을 캡슐화할 수 있습니다.

저는 또한 자세한 정보를 찾아보기 위해 다음 웹사이트를 방문하는 것을 권장드립니다: geeksforgeeks.org - Encapsulation in C

이 예시는 단순한 캡슐화 예시일 뿐이며, 실제 프로젝트에서의 캡슐화는 보다 복잡할 수 있습니다. 그러나 C 언어에서도 구조체와 함수 포인터를 사용하여 객체 지향적인 캡슐화를 구현할 수 있다는 것을 이해하는 데 도움이 될 것입니다.