kyuseo의 게임 프로그래밍

CString str = NULL ? str.Compare( NULL ) ? 본문

C++ 개발

CString str = NULL ? str.Compare( NULL ) ?

kyuseo 2007. 10. 24. 13:08

개요..

 

CString은 MFC 클래스 중에서도 가장 많이 사용하는 클래스 입니다. 하지만 몇몇 함수는 올바른 것인지 아닌지 명확하게 알 필요성이 종종 있습니다.

 

CString 의 operator()= 함수는 인자로 NULL을 대입하여도 작동이 잘 됩니다.

CString 의 Compare() 함수는 인자로 NULL을 대입하면 오류가 발생합니다.

 

 

코드

 

    {

        char* sz = NULL;

        CString str1 = NULL; // <---- 정상작동됨

        CString str2 = sz; // <---- 정상작동됨

        ASSERT( str == "" );

    }

 

    {

        char* sz = NULL;

        CString str = "Test";

        int n1 = str.Compare( sz ); // <----- 오류발생

        int n2 = strcmp( str, sz ); // <----- 오류발생

    }