2009년 3월 23일 월요일

CString - operator LPCTSTR () const;

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;   ...
};

댓글 없음:

댓글 쓰기