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

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

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
31

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 빌드를 통해 알 수 있었다. 


 

pthread_creat( )를 한 이후, main thread는 child thread( )가 종료될 때까지 기다린다.
-> pthread_join( )의 역할

하지만, 이 경우 thread가 종료되어도 child thread의 자원은 반환되지 않는다!!

그러므로 child thread가 종료되기 전에 pthread_exit( ) 함수를 호출해야 한다.

pthread_join ( )가 호출될 때, child thread( )의 resource를 반환한다.

'컴퓨터 > C/C++' 카테고리의 다른 글

C++]pure virtual function 컴파일 에러  (0) 2011.04.28
이전 1 다음