추상클래스 – 2.C++

순수가상함수(pure virtual function)

C++ 에서 함수 몸체가 없이 정의되는 함수이며 몸체 부분을 =0으로 지정하여야 합니다. 순수가상함수가 포함된 클래스를 추상클래스(Abstract Class)라고 하며, 이 추상클래스로는 직접 객체를 만들 수 없고 상속을 통해 다른 클래스를 생성하는 데 사용합니다. 추상클래스로부터 상속받은 클래스는 반드시 순수가상함수를 구현해야 합니다.

추상클래스 정의

자바에서처럼 추상클래스를 구분하는 abstract와 같은 키워드는 없으며, 단지 클래스에 하나 이상의 순수가상함수가 있다면 그것을 추상클래스라고 합니다.

순수가상함수의 오버라이드

하위클래스를 정의할 때는 순수가상함수 breathe()를 오버라이드해야 합니다. C++는 객체를 설정할 때 순수가상함수를 오버라이드하지 않는 것을 에러로 여깁니다. 즉, 한 클래스가 하나나 그 이상의 순수가상함수를 가진다면 그 클래스의 객체를 생성할 수 없습니다.

추상클래스 예제

이 경우에 프로그램은 fish::breathe()함수를 수행하게 됩니다. 따라서 “Bubbling…”이 화면에 표시됩니다.

C++에서의 추상클래스에 대한 좀 더 자세한 정보는 관련 서적을 참고하시기 바랍니다.

답글 남기기