[c++] 추상화

C++에서 추상화는 클래스나 함수를 일반적으로 사용할 수 있는 형태로 정의하는 프로그래밍 기술을 말합니다. 추상화를 사용하면 프로그램의 복잡성을 감소시키고 코드를 재사용하기 쉽게 만들 수 있습니다.

추상 클래스와 순수 가상 함수

C++에서 추상화를 구현하는 한 가지 방법은 추상 클래스와 순수 가상 함수를 사용하는 것입니다. 추상 클래스는 객체를 직접 생성할 수 없는 클래스로, 순수 가상 함수는 선언만 있고 정의가 없는 가상 함수입니다.

예를 들어, 다음은 추상 클래스와 순수 가상 함수를 사용한 간단한 예제입니다.

class Shape {
public:
    virtual float area() const = 0;  // 순수 가상 함수
};

class Circle : public Shape {
public:
    float area() const override {
        // 원의 넓이 계산
    }
};

class Rectangle : public Shape {
public:
    float area() const override {
        // 직사각형의 넓이 계산
    }
};

위 예제에서 Shape 클래스는 순수 가상 함수인 area를 포함하고 있으므로 이 클래스는 추상 클래스입니다. 이를 상속받은 CircleRectangle 클래스에서는 해당 함수를 구현해줘야 합니다.

추상화의 장점

추상화를 사용하면 다형성(polymorphism)을 쉽게 구현할 수 있습니다. 또한, 추상화를 통해 인터페이스와 구현을 분리하여 모듈 간의 의존성을 줄일 수 있고, 코드를 더 쉽게 유지 보수할 수 있습니다.

마치며

C++에서 추상화는 프로그램을 더 모듈화하고 유연하게 만들 수 있는 강력한 도구입니다. 추상화를 적절히 활용하면 코드를 더 쉽게 이해하고 확장할 수 있습니다.

참고 문헌: https://en.cppreference.com/w/cpp/language/abstract_class