728x90
반응형

CStdString : 윈도우즈 문자열 클래스

CStdString은 표준 C++의 basic_string 템플릿을 기반으로 MFCCString 클래스를 대체하기 위해 설계된 클래스입니다.

이 클래스는 basic_string의 기능에 CString의 편의성을 결합하여, 두 클래스의 장점을 모두 활용할 수 있도록 합니다.

주요 특징:

  • CString의 대체물: CStdStringCString의 대부분의 기능을 제공합니다.
  • 유니코드 및 멀티바이트 지원: CStdStringW(유니코드 기반)와 CStdStringA(멀티바이트 기반) 두 가지 버전을 제공합니다.
  • 안정성: CString처럼 모든 함수에서 문자열에 대한 NULL 체크를 수행하여 안정성을 보장합니다.
  • 자동 형변환: 특정 생성자와 할당 연산자를 통해 유니코드와 멀티바이트 문자열 간의 자동 변환을 지원합니다.
  • 암시적 변환: c_str()로의 암시적 변환 기능을 제공합니다.
  • 다양한 플랫폼 지원: Windows, UNIX, Linux 등 여러 플랫폼에서 빌드가 가능하며, 다양한 표준 C++ 라이브러리 구현과 호환됩니다.
  • 추가 기능: Win32 빌드에서는 DCOM의 IStream을 사용하는 멤버 함수를 통해 UNICODE/MBCS 변환 매크로와 같은 추가 기능을 제공합니다.
  • 경량성: basic_string의 세부 구현을 필요로 하지 않으며, 상속받은 템플릿에 멤버 변수나 가상 함수를 추가하지 않습니다.

주의사항:

  • 호환성 차이: CStdStringoperator[]CString과 달리 값을 반환합니다. 또한, 생성자의 매개변수 순서가 CString과 반대일 수 있습니다.
  • 가상 소멸자 부재: basic_string으로부터 상속받았기 때문에 가상 소멸자가 없으며, 이는 기반 클래스 포인터를 통해 파생 클래스를 삭제할 때 정의되지 않은 동작을 유발할 수 있습니다.

CStdStringbasic_stringCString의 장점을 결합하여, 표준 C++ 환경에서 CString의 편의성을 활용하고자 하는 개발자에게 유용한 도구입니다.

728x90
반응형

+ Recent posts