[c++] 추상 클래스의 상속과 구현

C++에서는 추상 클래스를 선언하고 파생 클래스에서 해당 추상 클래스를 상속하여 구현할 수 있습니다. 추상 클래스는 순수 가상 함수를 포함하는 클래스로, 이러한 함수는 파생 클래스에서 반드시 재정의되어야 합니다.

추상 클래스 선언

추상 클래스는 하나 이상의 순수 가상 함수를 포함하고 있습니다. 다음은 추상 클래스의 예제입니다.

class Shape {
public:
    virtual double area() const = 0;
    virtual double perimeter() const = 0;
};

위 예제에서 Shape 클래스는 areaperimeter 함수가 순수 가상 함수로 선언되어 있습니다.

추상 클래스를 상속하여 구현

파생 클래스에서 추상 클래스를 상속하고 순수 가상 함수를 구현합니다.

class Circle : public Shape {
private:
    double radius;

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

    double area() const override {
        return 3.14159 * radius * radius;
    }

    double perimeter() const override {
        return 2 * 3.14159 * radius;
    }
};

위 예제에서 Circle 클래스는 Shape 클래스를 상속하고 areaperimeter 함수를 구현하였습니다.

이와 같이 추상 클래스를 이용하면, 다형성을 통해 여러 타입의 객체를 동일한 인터페이스로 처리할 수 있습니다.

요약

C++에서는 추상 클래스를 사용하여 순수 가상 함수를 포함하는 인터페이스를 정의하고, 이를 상속하여 파생 클래스에서 구현할 수 있습니다. 이를 통해 유연하고 다형적인 코드를 작성할 수 있습니다.