본문 바로가기
C++

순수(pure) 가상함수와 추상(abstract)클래스

by 상레알 2009. 2. 4.

virtual int GetPay()=0;    <- 순수 가상 함수

위 소스를 보면 =0 이라는 부분이 있는 선언은 순수 가상 함수 임을선언하는 것이다
쉽게 말하면 GetPay 함수는 호출될 일이 없거든 그래서 일부러 선언만하고 정의는 하지 않은거야 실수가 아니니까 컴파일 오류시키면 안된다는 정도의 선언이다.

이와같이 하나 이상의 멤버함수가 순수 가상함수인 클래스를 가리켜 " 추상(abstract)클래스"라 한다.

추상 클래스는 객체화하지 못한다. 함수의 정의가 생략되었기 때문에 추상클래스는 완전한 클래스가 아니다

따라서 객체를 생성하지 못하는것은 당연하다.

보통 객체화필요없는 클래스를 이렇게 씀...(만약 객체화되었다면..프로그래머의 실수가 아닐지...)


virtual 소멸자의 필요성 -