[c언어] C 언어에서의 객체 지향적 설계 예제

C 언어는 주로 절차 지향적인 프로그래밍 언어로 알려져 있지만, 객체 지향적인 설계를 구현할 수 있는 방법도 있습니다. 객체 지향적인 설계를 구현하기 위해서는 구조체를 사용하고, 구조체의 멤버 함수를 이용해야 합니다.

객체 지향적인 설계 예제

#include <stdio.h>

// 구조체 정의
typedef struct {
    int radius;
} Circle;

// 멤버 함수 정의
void setRadius(Circle* circle, int r) {
    circle->radius = r;
}

float calculateArea(Circle* circle) {
    return 3.14 * circle->radius * circle->radius;
}

// 메인 함수
int main() {
    Circle myCircle;
    setRadius(&myCircle, 5);
    float area = calculateArea(&myCircle);
    printf("원의 넓이: %f\n", area);
    return 0;
}

위 예제에서는 원을 나타내는 Circle 구조체를 정의했습니다. 멤버 함수인 setRadiuscalculateArea는 이 구조체를 조작하고, 원의 반지름과 넓이를 계산합니다.

결론

C 언어는 객체 지향적인 설계를 구현하기 위해 구조체와 함수 포인터를 활용할 수 있습니다. 위의 예제에서는 객체 지향적인 설계의 일부를 구현한 것입니다. 하지만 이러한 방식은 C++이나 자바와 같은 다른 객체 지향 언어에 비해 번거로울 수 있습니다.

참고 문헌: https://www.studytonight.com/c/what-is-function-pointer-in-c.php