[c++] 추상 클래스

일반적으로 추상 클래스는 기반 클래스로 사용되어 파생 클래스에서 특정한 동작을 구현하도록 권장되는 메서드들을 가집니다. 추상 클래스는 객체를 생성할 수 없고, 오직 파생 클래스에서 상속받아 구현된 함수들을 통해만 사용됩니다.

아래는 추상 클래스의 예시입니다.

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

class Circle : public Shape {
private:
    double radius;
public:
    Circle(double r) : radius(r) {}
    virtual double area() const override {
        return 3.14 * radius * radius; // 원의 넓이를 계산하는 메서드
    }
    virtual double perimeter() const override {
        return 2 * 3.14 * radius; // 원의 둘레를 계산하는 메서드
    }
};

위의 예시에서 Shape 클래스는 추상 클래스로, areaperimeter 함수는 순수 가상 함수로 선언되었습니다. Circle 클래스는 Shape를 상속하고, 순수 가상 함수들을 구현하여 원의 넓이와 둘레를 계산합니다.

이러한 방식으로, 추상 클래스는 일종의 계약 혹은 인터페이스와 같이 동작하여, 파생 클래스에서 특정한 동작을 보장하고자 할 때 사용됩니다.

더 자세한 정보를 원하시면, 아래 C++ 공식 문서를 참고하시기 바랍니다.

참고 자료 - C++ 공식 문서