1. 순수 가상 함수란,
- 파생 클래스에서 반드시 재정의해야 하는 멤버 함수를 의미합니다.
2. 순수 가상 함수(pure virtual function)와 가상 함수(virtual funcion) 차이
- 가상 함수(virtual function)
- 파생 클래스에서 재정의할 것으로 기대하는 멤버 함수를 의미
- 반드시 재정의해야만 하는 함수가 아닌, 재정의가 가능한 함수를 가리킨다.
- 순수 가상 함수(pure virtual function)
- 파생 클래스에서 반드시 재정의해야 하는 멤버 함수를 의미
- 파생 클래스에서 재정의하지 않으면 사용할 수 없다.
3. 순수 가상 함수(pure virtual function)선언 방법
virtual 멤버 함수의 원형 = 0;
// 함수만 있고 본체가 없다는 의미로 함수 선언부 끝에 "=0"을 추가
4. 추상 클래스(abstract class)란,
- 하나 이상의 순수 가상 함수를 포함하는 클래스
- 객체지향 프로그래밍에서 중요한 특징인 다형성을 가진 함수의 집합을 정의할 수 있게 해준다.
- 즉, 반드시 사용되어야 하는 멤버 함수를 추상 클래스에 순수 가상 함수로 선언해 놓으면, 이 클래스로부터 파생된 모든 클래스에서는 이가상 함수를 반드시 재정의해야 한다.
- 동작이 정의되지 않은 순수 가상 함수를 포함하고 있으므로, 인스턴스를 생성할 수 없습니다.