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
[45547] Re:Dynamic cast 질문이에요~!
WARSHIP [warship] 1271 읽음    2006-07-04 09:19
초보 님이 쓰신 글 :
: 팁&트릭 소스중에 mx 서버 쿼리해오는게있던데요
:
:
: dynamic_cast<TMXRecord *>(IdDNSResolver1->QueryResult->Items[i])->ExchangeServer;
:
: 이런 문장인데 저기서 dynamic_cast의 역활이 먼가요??
:
: 검색을 해보니 객체를 타입캐스팅하는데 쓰인다고 하는데 C++을 시작한지 얼마안되서 이해가 잘안되네요..
:
: 도움말에는 IIdDNSResolver1->QueryResult->item[i] <--이게 TResultRecord 형태이고..
:
: TMXRecord는 TResultRecord의 자손이라고 나와있는데.. 왜 저렇게 써야하는지 이해가 잘..^^;

c와는 달리 C++에서는 4가지의 추가된 형변환 연산자를 지원하는데요.

dynamic_cast, static_cast, const_cast, reinterpret_cast 이렇게 4가지 입니다.

reinterpret_cast 는 C에서와 같이 전혀 타입을 따지지 않고 강제로 형변환을 하는 연산자 이구요.
const_cast 는 상수성을 떼버리는 연산자 입니다.(아마 맞을겁니다.. -_-; 자주 안써서..)
static_cast 는 약간의 안정성을 가미한 형변환을 해줍니다.
dynamic_cast 의 경우에는
부모 클래스 -> 상속클래스로의 안전한 형변환을 지원해 줍니다.
예를 들어 dynamic_cast<AAA>(BBB) 의 경우 AAA가 BBB의 자식클래스
혹은 부모클래스가 아닌 경우에 null을 반환하게 합니다.
고로 부모자식간에 안전한 형변환을 지원하는 연산자라 할 수 있겠습니다.

그럼 즐거운 하루 보내시기 바랍니다 ^^;

+ -

관련 글 리스트
45544 Dynamic cast 질문이에요~! 초보 952 2006/07/04
45554     두분 답변 감사합니다.^^; 초보 810 2006/07/04
45547     Re:Dynamic cast 질문이에요~! WARSHIP 1271 2006/07/04
45546     Re:Dynamic cast 질문이에요~! BloodWolf 872 2006/07/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.