[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
를 포함하고 있으므로 이 클래스는 추상 클래스입니다. 이를 상속받은 Circle
과 Rectangle
클래스에서는 해당 함수를 구현해줘야 합니다.
추상화의 장점
추상화를 사용하면 다형성(polymorphism)을 쉽게 구현할 수 있습니다. 또한, 추상화를 통해 인터페이스와 구현을 분리하여 모듈 간의 의존성을 줄일 수 있고, 코드를 더 쉽게 유지 보수할 수 있습니다.
마치며
C++에서 추상화는 프로그램을 더 모듈화하고 유연하게 만들 수 있는 강력한 도구입니다. 추상화를 적절히 활용하면 코드를 더 쉽게 이해하고 확장할 수 있습니다.
참고 문헌: https://en.cppreference.com/w/cpp/language/abstract_class