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 빌드를 통해 알 수 있었다.
'컴퓨터 > C/C++' 카테고리의 다른 글
pthread_join( ) 이후에 thread는 자원을 반환하지 않는다. (0) | 2009.11.26 |
---|