[c++] 순수 가상(pure virtual) 함수
class Base {
public:
virtual void display() = 0;
};
와 같이 “= 0”으로 정의된 가상 함수를 의미합니다. 이는 해당 함수에 대한 실제 구현이 없음을 나타내고, 파생 클래스에서 구현해야 함을 강제합니다. 이렇게 함으로써, Base 클래스의 구현에 영향을 주지 않고 파생 클래스에서 공통된 인터페이스를 제공할 수 있습니다.
순수 가상 함수를 가진 클래스는 추상 클래스(abstract class)로, 이를 직접적으로 인스턴스화할 수 없습니다. 순수 가상 함수를 포함하는 클래스는 파생 클래스에서 해당 함수를 오버라이딩하여 구현함으로써 완전한 클래스가 됩니다.
참고문헌:
- cplusplus.com - Abstract base classes
- GeeksforGeeks - Pure Virtual Functions and Abstract Classes in C++
- learncpp.com - 18.1 - Pure virtual functions and abstract base classes