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
[9459] Re:Re:TStrings::AddObject()의 이상한 점
jonglee [jonglee] 1170 읽음    2001-07-30 10:18
물론 제가 인스턴스 생성한건 아니구요.. (TComboBox::Items 멤버로 테스트한 것임)

그리고 TObject* 타입만 Assign할 수 있다는 님의 말은 맞지 않다고 생각합니다.

TStrings::Objects[]에 저장이 되는데 이것도 어짜피 변수일 뿐이고
VCL Class라고 하더라도 TStrings Class가 특별히 관리하는 것도 아닌
즉, 유저가 관리해야 하는 변수이지요.

TStrings::AddObject()에 대한 헬프에서 'Example'이 있는데
이것을 보면 TObject* 타입의 변수가 아닌 다른 값을 Assign해서
이용하는 예제가 나옵니다.
이 Q/A란에서도 이런 방법을 쓰는 것에 대한 얘기가 한 번
나온 적도 있는 것 같구요.

단, 제 처음 글에 있는 것과 같이 다른 값은 상관없는데
오직 -1만 지정을 못하는 것으로 봐서는 내부적으로 어떤
"관리"를 하는게 아닐까 하는 생각도 들기는 합니다.

그렇지만 아직도 빌더의 버그일 가능성이 높다고 생각합니다.


권대길.한꼬맹이 님이 쓰신 글 :
: 안녕하십니까?
:
: 한꼬맹이 입니다.
:
: 이상하네요...
:
: TStrings 추상클래스라서 인스턴스 생성할수 없을텐데요...
:
: 그렇다면 TStrings에서 상속받은 클래스라고 가정한다면...
:
: AddObject()메소드의 두번째인자에 들어가는 것은 TObject로 부터 상속받은 모든 클래스의 포인터 주소를
:
: 말합니다, 즉 VCL에서만 사용하는 모든 클래스가 해당되는 거죠.. 이것은 다시 컴퓨터 입장에서는
:
: 클래스의 메모리상의 시작주소를 뜻하는 거죠,,,
:
: 그렇니까 결론은 TObject로 상속받은 클래스의 포인터만 들어갈수 있다는겁니다..
:
: 그럼 참고하세요 

+ -

관련 글 리스트
9394 TStrings::AddObject()의 이상한 점 jonglee 947 2001/07/27
9439     Re:TStrings::AddObject()의 이상한 점 권대길.한꼬맹이 1135 2001/07/28
9459         Re:Re:TStrings::AddObject()의 이상한 점 jonglee 1170 2001/07/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.