C++ 개념 정리

2. 추상 클래스

CE : 하랑 2025. 12. 30. 17:13

 

- 개념

하나 이상의 순수 가상 함수를 선언한 클래스로 구체적인 클래스가 파생될 수 있는 일반 개념의 식 역할을 하는 클래스 입니다.

 

-> 하나 이상의 순수 가상 멤버 함수를 선언하여 추상 클래스를 만듭니다. 

-> 순수 지정자(= 0) 구문을 사용하여 선언된 가상 함수입니다.

-> 추상 클래스에서 파생된 클래스는 순수 가상 함수를 구현해야 합니다.

 

추상 클래스는 객체 생성이 안되는 이유

- 안 구현될 가능성 때문에 생성 불가 코드적으로 막음 -> 코드적 오류난다. 

-> 순수 가상함수가 선언만 있고 구현을 했을수도 있고 안했을수도 있는 가능성 때문에 코드적으로 막아둔것이라고 봅니다.

class A
{
public:
    virtual void Test()= 0;

    void Test2()
    {
        int a;
    };
};

int main()
{
    //A* AA = new A(); 코드적 에러

    // A test; 코드적 에러

}

 

 


가상 함수(virtual function)

C++에서 가상 함수(virtual function)는 파생 클래스에서 재정의할 것으로 기대하는 멤버 함수를 의미합니다.


순수 가상함수

 가상 함수 중 추상 클래스를 상속 받는 자식 클래스에서 반드시 재정의해야하는 맴버 함수

 

1. 객체화 시킬수 없다 -> 순수가상함수는 구현이 되어 있을수도 있고 없을수도 있다.
2. 자식에게 강요할수 함수의 구현강요

 

추상 클래스를 상속 받는 자식 클래스가 순수 가상함수를 선언안하면 생성 자체가 안된다. -> 코드적 에러 발생 -> 생성이 안됨

 

(virtual) 소멸자에 순수 가상함수 (=0) 하는 이유?

다른 함수를 순수 가상 함수로 만들지 않고 클래스를 추상화하고 싶을 때 사용하는 방법이다.

 virtual ~A() = 0
   {

   };

 

 

'C++ 개념 정리' 카테고리의 다른 글

6. 생성자, 소멸자  (0) 2026.01.03
5. 연산자  (0) 2026.01.03
4. 메모리  (0) 2026.01.01
3. C++ template  (0) 2025.12.30
1. 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)  (0) 2025.12.30