본문 바로가기
카테고리 없음

순수 가상 함수, 추상 클래스에 대하여

by kangs' tong 2023. 9. 7.

순수 가상 함수 (Pure Virtual Function)

순수 가상 함수는 C++에서 추상 클래스를 정의하는 데 사용되는 특별한 종류의 함수입니다. 이 함수는 클래스 내부에서 정의되지 않으며, 파생 클래스에서 반드시 재정의되어야 합니다. 순수 가상 함수는 함수의 선언 부분 끝에 "= 0"으로 표시됩니다.

순수 가상 함수를 가지고 있는 클래스는 추상 클래스이며, 이 클래스는 직접 객체를 생성할 수 없습니다. 대신 파생 클래스를 통해 객체를 생성하고 사용해야 합니다.

class AbstractClass {
public:
    virtual void pureVirtualFunction() const = 0;
};

위 예제에서 pureVirtualFunction은 순수 가상 함수입니다. 이 함수가 정의되지 않았기 때문에 AbstractClass가 추상 클래스로 간주됩니다.

추상 클래스 (Abstract Class)

추상 클래스란 순수 가상 함수를 포함하고 있는 클래스를 말합니다. 추상 클래스는 다음과 같은 특징을 가집니다.

  1. 추상 클래스는 직접 객체를 생성할 수 없습니다. 대신 파생 클래스를 통해 객체를 생성해야 합니다.
  2. 추상 클래스의 파생 클래스에서는 순수 가상 함수를 재정의해야 합니다. 그렇지 않으면 해당 파생 클래스도 추상 클래스가 됩니다.
  3. 추상 클래스는 다형성을 구현하는 데 주로 사용됩니다. 추상 클래스는 공통 인터페이스를 제공하고, 실제 구현은 파생 클래스에서 담당합니다.

추상 클래스는 추상 메서드 (abstract method) 또는 순수 가상 함수를 가지고 있기 때문에 인스턴스화될 수 없어서, 구체적인 메서드 구현을 강제할 수 있습니다. 이러한 특성으로 인해 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다.

정리

순수 가상 함수는 파생 클래스에서 반드시 재정의되어야 하는 함수로, 선언부에 "= 0"을 추가하여 정의하지 않습니다.

추상 클래스는 순수 가상 함수를 포함하는 클래스로, 직접 객체를 생성할 수 없으며 파생 클래스에서 재정의하여 사용해야 합니다. 추상 클래스는 다형성을 구현하는 데 사용되며, 공통 인터페이스를 제공합니다. 이러한 특성으로 인해 객체 지향 프로그래밍에서 중요한 역할을 합니다.

댓글