상세 컨텐츠

본문 제목

RTTI(Run-Time Type Information)

C++/형변환

by nowpassion 2008. 5. 11. 00:30

본문

1. RTTI(Run-Time Type Information)
- 객체의 유형을 실행시에 결정할 수 있도록 하는 기능입니다.
- 객체의 다형성을 기반으로 하는 기능입니다.
예제) http://www.winapi.co.kr/clec/cpp3/33-1-1.htm의 소스를 가지고 왔습니다.
사용자 삽입 이미지

- 실행결과
사용자 삽입 이미지

 








- 실행결과에도 나오듯이 강제로 캐스팅을 한 결과 엉뚱한 값이 나와버렸습니다. 실제 포인터형만 가지고는 실제 포인팅되어 있는 객체가 무엇인지를 알 수 없기 때문에 이를 보완하기 위해 최근 표준으로 정의된 기능이 RTTI라고 할 수 있습니다.(Child형 포인터지만 포인팅되어 있는 주소에 있는 객체가 Parent객체 인지 Child객체인지는 포인터만 가지고는 알 수 없지요.)

- RTTI를 구현하는 대표적인 예가 앞에서 언급한 dynamic_cast라고 할 수 있습니다.
  dynamic_cast를 통해 기본클래스 포인터를 파생클래스 포인터로 형변환 할 수 있고 이를 통해
  적절한 행동이  일어나도록 할 수 있습니다.

'C++ > 형변환' 카테고리의 다른 글

static_cast<>  (0) 2008.05.11
const_cast<>, reinterpret_cast<>연산자  (0) 2008.05.11
캐스팅 관련 연산자((), dynamic_cast<>)  (0) 2008.05.11

관련글 더보기