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 클래스에 들어가 위 코드를 확인해 보려 했는데
쉽지가 않다 -_-;; 어떻게 따라 들어가야 하는거야??
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 클래스에 들어가 위 코드를 확인해 보려 했는데
쉽지가 않다 -_-;; 어떻게 따라 들어가야 하는거야??