[c++] 추상 클래스의 예시 및 활용 사례
C++에서 추상 클래스는 하나 이상의 순수 가상 함수를 포함하는 클래스입니다. 이러한 클래스는 객체를 생성할 수 없으며, 대신 이러한 함수를 파생 클래스에서 구현하도록 강제합니다.
예시
#include <iostream>
// 추상 클래스 정의
class Shape {
public:
virtual void draw() = 0; // 순수 가상 함수
virtual double area() = 0; // 순수 가상 함수
};
// 추상 클래스를 상속받아 파생 클래스 정의
class Circle : public Shape {
public:
void draw() override {
std::cout << "Drawing Circle" << std::endl;
}
double area() override {
return 3.14 * radius * radius;
}
private:
double radius;
};
위의 코드에서 Shape
클래스는 draw
와 area
라는 순수 가상 함수를 포함하고 있습니다. 이는 Shape
클래스를 추상 클래스로 만들어 파생 클래스에서 이러한 함수들을 반드시 구현하도록 합니다.
활용 사례
- 도형 관련 프로그램: 도형을 표현하는 상위 수준의 추상 클래스를 사용하여 여러 종류의 도형을 처리하는 프로그램을 개발할 수 있습니다. 이러한 프로그램에서 각각의 도형은
Shape
클래스를 상속받아 필요한 메서드를 구현합니다. - 게임 프로그래밍: 게임에서 다양한 종류의 캐릭터나 유닛을 나타내기 위해 추상 클래스를 사용할 수 있습니다. 예를 들어, 모든 캐릭터가 공통적으로 가지는 속성과 행동을 나타내는
Character
클래스를 정의하고, 이를 상속받아 각각의 캐릭터 클래스를 구현할 수 있습니다.
이러한 방식으로 추상 클래스는 객체 지향 프로그래밍에서 유연하고 확장 가능한 설계를 할 수 있도록 도와줍니다.