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
[62192] Re:Re:AnsiString 과 char
하이~ [jebi97] 1326 읽음    2010-08-18 17:57
감사합니다. ^^

장성호 님이 쓰신 글 :
: FAQ의 초보자를 위한가이드3에서
:    String부분을 한번 살펴 보십시요
: http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_faq&no=135
: ---------------------------------------------------------------------
: 간단히 설명하면
: char는 1Byte짜리 변수고..
: AnsiString은 class입니다.
:
: AnsiString 은 void *Data라는 멤버 변수 딱 하나 가지고 있는데..
: 실제로 이놈 (void *Data)이   문자열Address를 가지고 있습니다. (char * 이죠)
:
: Data라는 변수가 private로 되어있기때문에..
: c_str()이라는 메소드를 통해  char*를 return받습니다.
:
: AnsiString s="12345";
:
: 위와같이 코딩하면..
: Heap에  "12345"를 저장할 메모리를 할당한후에
: 그 주소를 AnsiString.Data에 넣어둡니다.
:
: 그리고 매우 중요한것은
: AnsiString클래스는 Copy On Write 패턴으로 디자인된 class입니다.
:
: String s1="1234";
: String s2=s1;
:
: 위와같이 하면 s1의 내용이 s2로 복사가 되는것이 아니라..
: s1.Data의 주소가  s2.Data에 복사합니다.
: 그리고 RefCount가 하나 증가되구요..
:
: 어느한쪽에서라도 수정을 하게되면..
: RefCount가 하나 줄어들고..
: 수정하는쪽은 메모리 새로 할당해 원본을 copy한후에.. 수정합니다.
: 그러면 s1.Data에 들어있는 Address랑 s2.Data에 들어있는 Address가 다른 값이 되죠
:
: 그리고 AnsiString은
: 문자열 조합 s1+s2등을 할수 있도록 만든클래스이며..
: 기타 여러가지 기능이 있습니다.
:
: 그럼..
:
:
: 하이~ 님이 쓰신 글 :
: : AnsiString 과 char에 차이가 뭔가요?
: : 그리고 c_str()은 무엇인지 알려주세요 관련이 있다고 하던데...

+ -

관련 글 리스트
62186 AnsiString 과 char 하이~ 1128 2010/08/18
62190     Re:AnsiString 과 char 장성호 1607 2010/08/18
62192         Re:Re:AnsiString 과 char 하이~ 1326 2010/08/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.