[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
클래스는 추상 클래스로, area
와 perimeter
함수는 순수 가상 함수로 선언되었습니다. Circle
클래스는 Shape
를 상속하고, 순수 가상 함수들을 구현하여 원의 넓이와 둘레를 계산합니다.
이러한 방식으로, 추상 클래스는 일종의 계약 혹은 인터페이스와 같이 동작하여, 파생 클래스에서 특정한 동작을 보장하고자 할 때 사용됩니다.
더 자세한 정보를 원하시면, 아래 C++ 공식 문서를 참고하시기 바랍니다.