[c++] 가상 함수를 이용한 다형성의 실제 활용 사례

가상 함수는 C++에서의 다형성(polymorphism)을 구현하는 핵심 요소입니다. 다형성은 객체지향 프로그래밍에서 매우 중요한 개념으로, 한 가지 동작을 여러 객체가 다르게 수행할 수 있는 기능을 말합니다. 이번 글에서는 가상 함수를 이용한 다형성의 실제적인 활용 사례에 대해 살펴보겠습니다.

다형성의 이점

다형성을 활용하면 여러 클래스가 같은 함수 이름을 가지고 있더라도 다양한 방식으로 호출할 수 있습니다. 이는 코드의 모듈화와 유지보수를 향상시켜줍니다. 가상 함수를 사용하면 실행 시간에 적절한 함수를 호출할 수 있기 때문에 유연하고 확장 가능한 코드를 작성할 수 있습니다.

다형성의 실제 활용 사례

예를 들어 도형(Shape) 클래스가 있고, 이를 상속받은 원(Circle) 클래스와 사각형(Rectangle) 클래스가 있다고 가정해봅시다. 각 클래스마다 calculateArea()라는 함수를 가지고 있을 때, 가상 함수를 이용하여 이를 구현할 수 있습니다.

class Shape {
public:
    virtual double calculateArea() {
        return 0.0;
    }
};

class Circle : public Shape {
private:
    double radius;

public:
    Circle(double r) : radius(r) {}

    virtual double calculateArea() override {
        return 3.14 * radius * radius;
    }
};

class Rectangle : public Shape {
private:
    double width;
    double height;

public:
    Rectangle(double w, double h) : width(w), height(h) {}

    virtual double calculateArea() override {
        return width * height;
    }
};

위의 예제에서 calculateArea() 함수는 각 도형에 따라 다르게 동작하도록 구현되어 있습니다. 이렇게 가상 함수를 사용하면 다형성을 통해 각 도형마다 다른 면적을 계산할 수 있습니다.

결론

가상 함수를 이용한 다형성을 활용하면 유연하고 확장 가능한 코드를 작성할 수 있습니다. 이를 통해 클래스의 행동을 다양화시키고, 유연하게 변화에 대응할 수 있는 프로그래밍을 할 수 있습니다.

가상 함수와 다형성은 객체지향 프로그래밍에서 매우 중요한 개념이므로, 실제 개발에서 다양한 활용 사례를 통해 숙지하는 것이 중요합니다.

참고 자료