공통 책임 추출
모든 파생 타입이 반드시 제공해야 하는 동작만 기반 클래스에 남깁니다.
순수 가상 함수는 구현을 미루는 문법이 아니라 파생 클래스가 반드시 지켜야 할 호출 계약을 만드는 장치입니다.
모든 파생 타입이 반드시 제공해야 하는 동작만 기반 클래스에 남깁니다.
함수 뒤에 = 0을 붙여 기반 클래스가 직접 구현하지 않음을 표시합니다.
파생 클래스는 override로 실제 동작을 제공해야 인스턴스를 만들 수 있습니다.
호출 코드는 구체 타입보다 추상 타입 포인터나 참조에 의존합니다.