CString - operator LPCTSTR () const;



const char *pName 과 같은 매개변수에 CString 객체 값을 대입하면 아무 문제 없이 동작한다.
const char * 와 CString 데이터 형은 분명 다르지만 명시적인 타입 캐스팅 없이 동작함을
무의식적으로 외우다 싶이 사용해 왔다.

즉,
int SomeFunc(char *pszInput);

CString str = "Test";
SomeFunc(src);


이렇게 사용할 수 있는 이유는
CString 클래스에 아래와 같이 LPCTSTR 자료형이 재정의(Overriding) 되어 있기 때문이다.

class CString
{
   ...
   operator LPCTSTR () const;
   ...
};





cf) 내가 직접 CString 클래스에 들어가 위 코드를 확인해 보려 했는데
    쉽지가 않다 -_-;; 어떻게 따라 들어가야 하는거야??
Posted by six605
,