728x90
C++에서 런탕미에 객체의 타입 정보를 확인하는 메커니즘을 말한다.
RTTI는 C++의 다형성(polymorphism)을 활용하고 객체의 동적인 특성을 다룰 때 유용하게 사용된다.
사용예시
- 객체의 실제 타입을 런타임때 확인하는데 사용된다.
- 다형성을 지원하며, 가상 함수와 함께 사용하여 동적 바인딩 기능을 가능케 한다.
- typeid 연산자를 사용하여 객체타입의 정보를 얻을 수 있다.
typeid
typeid 연산자는 객체의 타입정보를 반환한다.
#include <typeinfo>
// 객체 또는 포인터에 대해 typeid 연산자 사용
const std::type_info& typeInfo = typeid(obj);
사용 부분
- dynamic_cast
- dynamic_cast는 RTTI와 함께 사용되며, 안전한 다운캐스팅을 지원한다.
- 런타임에 객체의 실제 타입을 확인하고 다운캐스팅이 가능한 경우에만 변환을 수행한다.
- std::type_info
- type_info는 typeid연산자를 통해 얻어진 타입 정보를 담는 클래스이다.
- std::bad_cast
- dynamic_cast에서 다운캐스팅이 실패할 때 발생하는 예외클래스이다.
- 이 예외처리를 통해 다운캐스팅 실패를 처리할 수 있다.
728x90
'C++ > 기초' 카테고리의 다른 글
가상 함수 테이블(virtual Function Table, Vtable) (0) | 2024.01.12 |
---|---|
C++에 사용되는 4가지 형변환 연산자 (0) | 2024.01.12 |
참조형 변수 (Reference Types) (0) | 2024.01.09 |
참조에 의한 전달 (Passing by Reference) (0) | 2024.01.09 |
값에 의한 전달(Passing by Value) (0) | 2024.01.09 |