C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[14555] RE: AnsiString에 대해... 주의할점
패패루 [peperu] 1267 읽음    2002-01-15 22:39
그냥 예외라고 보시면 됩니다.

AnsiString의 경우 VCL이라기보다는 기초클래스에 가깝죠.
그리고 기초클래스라기 보다는 그냥 새로운 type이라고
생각하시는게 좋습니다.

AnsiString은 Delphi 스트링과의 호환성을 갖추기 위한
목적이 큽니다.
Help파일을 보시면 금방 아시겠지만, AnsiString의 경우
Method와 Member는 있지만 프라퍼티나 이벤트는 없죠..
그리고 사실 멤버라고 해 봐야 char* Data 밖에 없습니다.
일반 char* 타입을 대신하기 위해 최대한 가볍게, 최대한
빠르게 동작할 수 있게 설계되어 있고, 내부 코드 역시
어셈블러로 구현되어 있습니다.
이러한 이유 때문에 동적 스트링의 경우 AnsiString을
쓰는 것은 데이터 양의 측면에서 전혀 낭비가 없습니다.

처음 빌더를 접하시는 분들일수록, 그리고 일반적인 C++
에 익숙하신 분들일수록 AnsiString을 사용하는 것을 망
설이시는 경향이 있는데, 그것 때문에 엄청 고민했던 경
험자로서 조언을 드린다면 안심하고 그냥 쓰셔도 됩니다.

단, 함수의 인자로 사용될 때는

void MyFunction(String sValue)
{
  ...
}

이렇게 쓰시는 것 보다는

void MyFunction(const String &sValue)
{
  ...
}

이렇게 참조를 쓰시는게 효율면에서 우수합니다.




지영배 님이 쓰신 글 :
:
: AnsiString 도 클래스 인데..
:
: 사용할때
:
: AnsiString aa = "하하하";
:
: 이런식으로 사용이 가능하더군요..
:
: VCL 클래스는 new 를 이용한 동적 할당을 해 줘야 된다고 들었는데..
:
: 어째서 AnsiString 는 저렇게 하는것이 가능한지 궁금합니다.
:
:

+ -

관련 글 리스트
14552 AnsiString 은 왜 new 로 선언하지 않는건지요? 지영배 830 2002/01/15
14555     RE: AnsiString에 대해... 주의할점 패패루 1267 2002/01/15
14565         자세한 답변 감사합니다.. (내용무~) 지영배 816 2002/01/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.