[c언어] 다형성 구현 방법
다형성은 객체 지향 프로그래밍에서 매우 중요한 개념 중 하나입니다. C 언어는 객체 지향 언어가 아니지만, 다형성을 구현하는 방법이 있습니다. 이번 포스트에서는 C 언어에서의 다형성 구현 방법에 대해 알아보겠습니다.
다형성이란?
다형성은 같은 인터페이스나 추상 클래스를 상속받는 클래스들이 각자 다른 방식으로 동작하는 것을 의미합니다. C 언어에서는 이를 함수 포인터를 이용하여 구현할 수 있습니다.
typedef struct {
int (*calcArea)(int, int);
} Shape;
int calculateRectangleArea(int width, int length) {
return width * length;
}
int calculateCircleArea(int radius) {
return 3.14 * radius * radius;
}
int main() {
Shape rectangle;
Shape circle;
rectangle.calcArea = calculateRectangleArea;
circle.calcArea = calculateCircleArea;
int area1 = rectangle.calcArea(3, 4);
int area2 = circle.calcArea(5);
return 0;
}
위 코드에서는 Shape
구조체에 calcArea
함수 포인터를 가지고 있고, 이 포인터를 이용하여 다른 도형에 대한 면적을 구하는 함수를 가리키게 합니다.
이렇게 하면 동일한 인터페이스를 가지는 구조체에 다른 기능을 구현할 수 있으므로 다형성을 구현할 수 있는 것입니다.
정리
C 언어는 객체 지향 언어는 아니지만, 함수 포인터를 이용하여 다형성을 구현할 수 있습니다. 이를 통해 객체 지향적인 프로그래밍을 구현할 수 있습니다.
이상으로 C 언어에서의 다형성 구현 방법에 대해 알아보았습니다. 감사합니다.
```