[c언어] 상속과 다형성
C 언어는 객체지향 프로그래밍을 직접적으로 지원하지는 않지만, 상속과 다형성과 같은 객체지향 프로그래밍의 개념을 모방할 수 있습니다.
상속 (Inheritance)
상속은 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는 것을 말합니다.
예제 코드
#include <stdio.h>
// 부모 클래스 정의
struct Parent {
int parentData;
};
// 자식 클래스 정의
struct Child : public Parent {
int childData;
};
int main() {
struct Child c;
c.parentData = 10; // 부모 클래스의 속성에 접근
c.childData = 20; // 자식 클래스의 속성에 접근
return 0;
}
위의 코드에서 Child
클래스가 Parent
클래스를 상속받았습니다. 이제 Child
클래스는 parentData
속성과 이에 접근하는 메서드를 사용할 수 있습니다.
다형성 (Polymorphism)
C 언어에서는 다형성을 함수 포인터를 이용해서 모방할 수 있습니다.
예제 코드
#include <stdio.h>
// 다형성을 이용한 함수
void printData(void* data) {
printf("%d", *(int*)data);
}
int main() {
int num = 10;
printData(&num); // 다형성을 이용해서 데이터 출력
return 0;
}
위의 코드에서 printData
함수는 void*
타입의 매개변수를 가지고 있으므로, 어떤 타입의 데이터라도 출력할 수 있습니다.
C 언어는 객체지향 프로그래밍 언어보다는 직관적으로 상속과 다형성을 지원하지는 않지만, 위와 같은 방법을 통해 이를 모방할 수 있습니다.