프로그래밍 공부
카테고리
작성일
2024. 1. 12. 16:06
작성자
WDmil
728x90

C++에서 런탕미에 객체의 타입 정보를 확인하는 메커니즘을 말한다.

 

RTTI는 C++의 다형성(polymorphism)을 활용하고 객체의 동적인 특성을 다룰 때 유용하게 사용된다.

 

사용예시

  • 객체의 실제 타입을 런타임때 확인하는데 사용된다.
  • 다형성을 지원하며, 가상 함수와 함께 사용하여 동적 바인딩 기능을 가능케 한다.
  • typeid 연산자를 사용하여 객체타입의 정보를 얻을 수 있다.

typeid

typeid 연산자는 객체의 타입정보를 반환한다.

#include <typeinfo>

// 객체 또는 포인터에 대해 typeid 연산자 사용
const std::type_info& typeInfo = typeid(obj);

 

 

사용 부분

 

  1. dynamic_cast
    • dynamic_cast는 RTTI와 함께 사용되며, 안전한 다운캐스팅을 지원한다.
    • 런타임에 객체의 실제 타입을 확인하고 다운캐스팅이 가능한 경우에만 변환을 수행한다.
  2. std::type_info
    • type_info는 typeid연산자를 통해 얻어진 타입 정보를 담는 클래스이다.
  3. std::bad_cast
    • dynamic_cast에서 다운캐스팅이 실패할 때 발생하는 예외클래스이다.
    • 이 예외처리를 통해 다운캐스팅 실패를 처리할 수 있다.
728x90