[c언어] C 언어에서의 클래스와 객체 선언
C 언어는 객체지향 언어가 아니지만, 구조체를 이용하여 클래스와 객체를 모방할 수 있습니다. 구조체를 사용하여 클래스와 객체를 선언하고 다루는 방법에 대해 알아봅시다.
클래스 선언
C 언어에서 클래스는 구조체로 나타낼 수 있습니다. 일반적으로 구조체 안에는 멤버 변수와 함수 포인터가 포함됩니다.
typedef struct {
int data;
void (*func)(int);
} MyClass;
위의 예시에서 MyClass
는 클래스를 나타내며, 멤버 변수로는 data
가 있고, 함수 포인터로는 func
가 있습니다.
객체 생성
클래스의 객체를 생성할 때에는 구조체 변수를 선언합니다.
MyClass obj;
위의 예시에서 obj
는 MyClass
클래스의 객체를 나타냅니다.
객체 초기화 및 사용
객체를 초기화할 때에는 단순히 각 멤버 변수에 값을 할당하면 됩니다.
obj.data = 10;
obj.func = &myFunction;
객체를 사용할 때에는 해당 객체의 멤버 변수에 접근하여 값을 얻거나 설정하고, 함수 포인터를 호출하여 객체의 메서드를 실행할 수 있습니다.
int value = obj.data;
obj.func(value);
C 언어의 구조체를 활용하여 클래스와 객체를 모방할 수 있다는 것을 알았습니다. 이러한 방식으로 객체지향적인 프로그래밍을 수행할 수 있지만, 현대적인 객체지향 언어보다는 불편한 사용성을 가지고 있습니다.
이러한 방식은 C++과 같은 객체지향적인 언어보다는 원시적이지만, C 언어를 사용하다보면 클래스와 객체를 사용해야 하는 상황이 발생할 수 있고, 이러한 방식으로 구현하는 방법을 알고 있는 것이 도움이 될 수 있습니다.
참고 자료
- “The C Programming Language” by Brian W. Kernighan and Dennis M. Ritchie
- GeeksforGeeks - Classes and Objects in C
- TutorialsPoint - C - Objects and Classes