[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 언어에서의 다형성 구현 방법에 대해 알아보았습니다. 감사합니다.

참고 자료

```