순수 가상 함수는 일반적으로 몸체를 가지지 않으며 파생 클래스에서 반드시 재정의해주어야 하는 함수이다.
순수 가상 함수를 한 개 이상 지닌 클래스를 추상 클래스라 부르며, 추상 클래스 타입은 인스턴스화가 불가능하다.
다만 포인터는 선언할 수 있다.
만약 파생클래스가 순수 가상 함수를 재정의해주지 않는다면 그 클래스 역시 추상 클래스이므로 인스턴스화가 불가능하다.
그러나 원한다면 순수 가상 함수 역시 본체를 가질 수 있다.
후손들이 동작하는데 공통적으로 필요한 구현이 있다면 추상 클래스의 순수 가상 함수에 이 코드를 미리 작성해 넣을 수 있다.
이때 추상 클래스가 정의하는 기능 목록을 인터페이스라고 한다.
시간이 지난 후 이 프로젝트를 다시 분석할 때는 추상 클래스의 순수 가상 함수 목록만 봐도 프로젝트의 전체 구조를 한눈에 파악할 수 있다. 후임자에게 프로젝트를 인수하거나 팀작업을 할 때도 추상 클래스 자체가 워낙 설명적이어서 별다른 해설이 필요치 않다