📚책읽기
[C++] RTTI, dynamic_cast, typeid
공대 컴린이
2023. 2. 21. 10:14
728x90
RTTI (Runtime Type Identification, 실행 시간 데이터형 정보)
- RTTI의 목적은 프로그램이 실행 도중에 객체의 데이터형을 결정하는 표준 방법을 제공하는 것이다.
- RTTI는 가상 함수들을 가지고 있는 클래스들에 대해서만 사용할 수 있다.
- dynamic_cast, typeid, type_info 의 총 3가지 연산자는 RTTI를 지원하는 요소를 갖는다.
dynamic_cast
- 가장 많이 사용되는 RTTI의 요소로써, 포인터가 지시하는 객체형이 무엇인지 알려주지 않고, 대신 그 객체의 주소를 특정형의 포인터에 안전하게 대입할 수 있는지를 알려준다.
- 사용예제: Superb* pm = dynamic_cast<Superb*> (pg);
typeid
- typeid 연산자를 사용하면 두 객체의 데이터형이 같은지 결정할 수 있다.
- type_info 객체에 대한 참조를 리턴한다.
728x90