2008년 07월 26일
컴파일러 경고(수준 2) C4150

오류 메시지

불완전한 형식 'type'에 대한 포인터를 삭제했습니다. 소멸자가 호출되지 않습니다.
deletion of pointer to incomplete type 'type'; no destructor called

delete 연산자가 호출되어, 선언되었지만 정의되지 않은 형식을 삭제했으므로 컴파일러가 소멸자를 찾을 수 없습니다.

다음 샘플에서는 C4150 경고가 발생하는 경우를 보여 줍니다.

// C4150.cpp
// compile with: /W2
class  IncClass;

void NoDestruct( IncClass* pIncClass )
{
   delete pIncClass;
} // C4150, define class to resolve

int main()
{
}


제 프로젝트의 소스를 변경하던중 갑자기 C4150 경고가 발생하길래 찾아본 MSDN 문서입니다. 위의 예제 소스에서 보다 시피 특정 클래스의 객체 포인터만을 사용하기 위해서 전방선언을 이용했지만 그 클래스의 소멸자를 부르기 위해서는 세부 정의 사항이 필요하게 됩니다. 이때는 당연히 헤더파일을 선언해주어야합니다. 전 이걸 몰라서 40분을 해맸네요 ㅎㅎ 이런 오류 찾아서 수정하는 것도 공부 많이 되고 잼있네요 ~


※ 위 글에 대한 잘못된 부분이나 궁금하신 부분에 대한 피드백은 언제나 환영입니다 ~ 물론, 퍼가신다면 영광이구요. 우리나라의 모든 개발자 분들께서 바쁘시지만 서로 자신의 귀중한 경험과 지식을 공유해서 함께 발전해 나갈 수 있었으면 합니다 ^^

by greenfrog | 2008/07/26 09:39 | C++ / WIN32 / MFC | 트랙백 | 덧글(0)
트랙백 주소 : http://greenfrog7.egloos.com/tb/625790
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글



<< 이전 페이지 | 다음 페이지 >>