순수 가상 함수 (Pure Virtual Function)
순수 가상 함수는 C++에서 추상 클래스를 정의하는 데 사용되는 특별한 종류의 함수입니다. 이 함수는 클래스 내부에서 정의되지 않으며, 파생 클래스에서 반드시 재정의되어야 합니다. 순수 가상 함수는 함수의 선언 부분 끝에 "= 0"으로 표시됩니다.
순수 가상 함수를 가지고 있는 클래스는 추상 클래스이며, 이 클래스는 직접 객체를 생성할 수 없습니다. 대신 파생 클래스를 통해 객체를 생성하고 사용해야 합니다.
class AbstractClass {
public:
virtual void pureVirtualFunction() const = 0;
};
위 예제에서 pureVirtualFunction
은 순수 가상 함수입니다. 이 함수가 정의되지 않았기 때문에 AbstractClass
가 추상 클래스로 간주됩니다.
추상 클래스 (Abstract Class)
추상 클래스란 순수 가상 함수를 포함하고 있는 클래스를 말합니다. 추상 클래스는 다음과 같은 특징을 가집니다.
- 추상 클래스는 직접 객체를 생성할 수 없습니다. 대신 파생 클래스를 통해 객체를 생성해야 합니다.
- 추상 클래스의 파생 클래스에서는 순수 가상 함수를 재정의해야 합니다. 그렇지 않으면 해당 파생 클래스도 추상 클래스가 됩니다.
- 추상 클래스는 다형성을 구현하는 데 주로 사용됩니다. 추상 클래스는 공통 인터페이스를 제공하고, 실제 구현은 파생 클래스에서 담당합니다.
추상 클래스는 추상 메서드 (abstract method) 또는 순수 가상 함수를 가지고 있기 때문에 인스턴스화될 수 없어서, 구체적인 메서드 구현을 강제할 수 있습니다. 이러한 특성으로 인해 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다.
정리
순수 가상 함수는 파생 클래스에서 반드시 재정의되어야 하는 함수로, 선언부에 "= 0"을 추가하여 정의하지 않습니다.
추상 클래스는 순수 가상 함수를 포함하는 클래스로, 직접 객체를 생성할 수 없으며 파생 클래스에서 재정의하여 사용해야 합니다. 추상 클래스는 다형성을 구현하는 데 사용되며, 공통 인터페이스를 제공합니다. 이러한 특성으로 인해 객체 지향 프로그래밍에서 중요한 역할을 합니다.
댓글