728x90
반응형
CStdString
은 표준 C++의 basic_string
템플릿을 기반으로 MFC
의 CString
클래스를 대체하기 위해 설계된 클래스입니다.
이 클래스는 basic_string
의 기능에 CString
의 편의성을 결합하여, 두 클래스의 장점을 모두 활용할 수 있도록 합니다.
주요 특징:
CString
의 대체물:CStdString
은CString
의 대부분의 기능을 제공합니다.- 유니코드 및 멀티바이트 지원:
CStdStringW
(유니코드 기반)와CStdStringA
(멀티바이트 기반) 두 가지 버전을 제공합니다. - 안정성:
CString
처럼 모든 함수에서 문자열에 대한 NULL 체크를 수행하여 안정성을 보장합니다. - 자동 형변환: 특정 생성자와 할당 연산자를 통해 유니코드와 멀티바이트 문자열 간의 자동 변환을 지원합니다.
- 암시적 변환:
c_str()
로의 암시적 변환 기능을 제공합니다. - 다양한 플랫폼 지원: Windows, UNIX, Linux 등 여러 플랫폼에서 빌드가 가능하며, 다양한 표준 C++ 라이브러리 구현과 호환됩니다.
- 추가 기능: Win32 빌드에서는 DCOM의
IStream
을 사용하는 멤버 함수를 통해 UNICODE/MBCS 변환 매크로와 같은 추가 기능을 제공합니다. - 경량성:
basic_string
의 세부 구현을 필요로 하지 않으며, 상속받은 템플릿에 멤버 변수나 가상 함수를 추가하지 않습니다.
주의사항:
- 호환성 차이:
CStdString
의operator[]
는CString
과 달리 값을 반환합니다. 또한, 생성자의 매개변수 순서가CString
과 반대일 수 있습니다. - 가상 소멸자 부재:
basic_string
으로부터 상속받았기 때문에 가상 소멸자가 없으며, 이는 기반 클래스 포인터를 통해 파생 클래스를 삭제할 때 정의되지 않은 동작을 유발할 수 있습니다.
CStdString
은 basic_string
과 CString
의 장점을 결합하여, 표준 C++ 환경에서 CString
의 편의성을 활용하고자 하는 개발자에게 유용한 도구입니다.
728x90
반응형
'C C++' 카테고리의 다른 글
간단한 C++ 오버라이딩(overriding) 예제 (0) | 2012.11.09 |
---|---|
Qt Polymorphism (0) | 2012.03.06 |
[ FUNNY CODE ][runtime error] 초기화 실패 (0) | 2011.10.06 |
[StudioStyles] 비주얼 스튜디오 색 변경 (Visual Studio Color Shceme) (0) | 2011.09.18 |
C 언어의 선대 언어 계승 기능 (0) | 2011.07.31 |