루리코딩 세상

OOP_추상화(Abstraction) 본문

이론/C++ 키워드 정리

OOP_추상화(Abstraction)

루리딩 2025. 6. 7. 21:05

복잡한 내부 구현을 숨기고, 중요한 기능만 외부에 제공해주는 기능을 추상화(Abstraction)라 한다.
C++에서 추상화 기능을 구현하는 방법은 접근 제어자, 추상 클래스&순수 가상 함수. 인터페이스 등을
사용하여, 추상화를 설계한다.
 
접근 제어자(private, public, protected)
(private : 내부 구현, 접근 제한) (public : 외부에 보이는 기능)
(protected : 해당 클래스 자신과 해당 클래스를 상속받은 자식 클래스에서는 접근이 가능하다.)

접근 제어자동일 클래스자식 클래스외부(Objcet)
publicOOO
protectedOO
privateO

 
추상 클래스 & 순수 가상 함수
인터페이스만 정의한다. 상속받는 자식 클래스가 구현하게 하는 기능을 제공한다.

class Animal {
public:
    virtual void speak() = 0;  // 순수 가상 함수
};

class Dog : public Animal {
public:
    void speak() override { std::cout << "멍멍!" << std::endl; }
};

 
인터페이스 설계
여러 구현을 하나의 인터페이스로 다룰 수 있게한다.

void makeAnimalSpeak(Animal* a) {
    a->speak();  // Dog, Cat, Bird 모두 이 함수 사용 가능
}

'이론 > C++ 키워드 정리' 카테고리의 다른 글

다형성 : Polymorphism  (0) 2025.06.09
인텔리센스(IntelliSense)  (0) 2025.06.08
추상 클래스, Template Method Pattern  (0) 2025.06.07
c++ : l-value, r-value : 좌측값과 우측값  (0) 2025.06.04
디자인 패턴  (0) 2025.06.02