[c언어] C 언어에서의 클래스와 객체 선언

C 언어는 객체지향 언어가 아니지만, 구조체를 이용하여 클래스와 객체를 모방할 수 있습니다. 구조체를 사용하여 클래스와 객체를 선언하고 다루는 방법에 대해 알아봅시다.

클래스 선언

C 언어에서 클래스는 구조체로 나타낼 수 있습니다. 일반적으로 구조체 안에는 멤버 변수와 함수 포인터가 포함됩니다.

typedef struct {
    int data;
    void (*func)(int);
} MyClass;

위의 예시에서 MyClass는 클래스를 나타내며, 멤버 변수로는 data가 있고, 함수 포인터로는 func가 있습니다.

객체 생성

클래스의 객체를 생성할 때에는 구조체 변수를 선언합니다.

MyClass obj;

위의 예시에서 objMyClass 클래스의 객체를 나타냅니다.

객체 초기화 및 사용

객체를 초기화할 때에는 단순히 각 멤버 변수에 값을 할당하면 됩니다.

obj.data = 10;
obj.func = &myFunction;

객체를 사용할 때에는 해당 객체의 멤버 변수에 접근하여 값을 얻거나 설정하고, 함수 포인터를 호출하여 객체의 메서드를 실행할 수 있습니다.

int value = obj.data;
obj.func(value);

C 언어의 구조체를 활용하여 클래스와 객체를 모방할 수 있다는 것을 알았습니다. 이러한 방식으로 객체지향적인 프로그래밍을 수행할 수 있지만, 현대적인 객체지향 언어보다는 불편한 사용성을 가지고 있습니다.

이러한 방식은 C++과 같은 객체지향적인 언어보다는 원시적이지만, C 언어를 사용하다보면 클래스와 객체를 사용해야 하는 상황이 발생할 수 있고, 이러한 방식으로 구현하는 방법을 알고 있는 것이 도움이 될 수 있습니다.

참고 자료