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
[62077] Re:STL관련하여... 계속 올리는 것 같아.. 죄송합니다.
Nibble [gameover] 906 읽음    2010-08-05 02:00
list<CList_Class> *Value = new list<CList_Class>();
    CList_Class  *newValue = new CList_Class();
    newValue->ValueT = 1;
    Value->push_back(*newValue);
    CList_Class  *Tempv = &Value->back();
라고 쓰시든지,
    list<CList_Class*> *Value = new list<CList_Class*>();
    CList_Class  *newValue = new CList_Class();
    newValue->ValueT = 1;
    Value->push_back(newValue);
    CList_Class  *Tempv = Value->back();
라고 쓰시든지...
    list<CList_Class> Value;
    CList_Class newValue;
    newValue.ValueT = 1;
    Value.push_back(newValue);
    CList_Class Tempv = Value.back();
라고 쓰시든지요..

어쨌건, Value가 포인터형이고, 포인터는 곧 배열로 표현가능하기 때문에,
Value[0] 란 표현은 Value라는 리스트가 가진 0번째 데이타가 아닌, 포인터 변수 Value가 가리키는곳의 내용,
즉 list 자신이 됩니다. 이 부분은 연산자 오버로딩을 통해서 배열요소를 나타내는 꺽쇄를 함수로 정의할 때
주의해야 할 부분이기도 하구요.
그 배열요소를 제대로 오버로딩하기 위해선 해당 클래스가 포인터형으로 선언되어서는 안된다는 것이죠.

초보자 님이 쓰신 글 :
: 안녕하세요.. 계속 올리는거 같아.. 죄송합니다.
:
:
: list<CList_Class> *Value = new list<CList_Class>();

:
:     CList_Class  *newValue = new CList_Class();
:     newValue->ValueT = 1;
:

:     Value->push_back(const_cast<CList_Class &>(*newValue) );


:     CList_Class  *Tempv = &(reinterpret_cast<CList_Class &>(Value[0]));
:
:     printf("%d\n", Tempv->ValueT); //값이 다르게 나오는데요..;;
:
: 혹시 알려주실수 있을까요... 정말 죄송합니다. 몰라서....

+ -

관련 글 리스트
62045 STL관련하여... 계속 올리는 것 같아.. 죄송합니다. 초보자 792 2010/07/29
62077     Re:STL관련하여... 계속 올리는 것 같아.. 죄송합니다. Nibble 906 2010/08/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.