블로그 이미지
언제나 늘 푸른 소나무처럼. 자신의 의지로 오롯이 서기
예섬수진

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

C++]pure virtual function 컴파일 에러

2011. 4. 28. 00:09 | Posted by 예섬수진

Webkit gtk 소스 빌드 시, 아래와 같이 pure virtual function 관련 컴파일 에러를 발견하였다. 
 ../../Source/WebKit/gtk/webkit/webkitwebview.cpp:3496: error: cannot allocate an object of abstract type ‘WebKit::ChromeClient’
 ../../Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h:37: note:   because the following virtual functions are pure within ‘WebKit::ChromeClient’:
../../Source/WebCore/page/ChromeClient.h:229: note: virtual void WebCore::ChromeClient::enumerateChosenDirectory(const WTF::String&, WebCore::FileChooser*) 

확인 결과, pure virtual function을 가진 클래스는 객체를 생성할 수 없기 때문에 발생한 문제 였다. 

pure virtual function을 가진 클래스를 상속받을 경우, 모든 pure virtual function을 재정의하여야 한다. 그렇지 않으면 파생된 클래스 역시 pure virtual function을 가지므로, 객체를 생성할 수 없다. 

책에서만 보던 내용을 Webkit 빌드를 통해 알 수 있었다.