호빵의 IT 개발소

dynamic_cast란? 본문

CS(전공지식)/기술면접 준비

dynamic_cast란?

호빵Stack 2025. 4. 3. 19:40

dynamic_cast

  • dynamic_cast는 런타임에 타입을 안전하게 변환하는 C++ 연산자.
  • 주로 기본 클래스 포인터 → 파생 클래스 포인터(다운캐스팅) 시 사용.
  • RTTI (Run-Time Type Information) 를 이용해 타입이 실제로 맞는지 검사함.
  • 실패할 경우:
    • 포인터 변환 → nullptr 반환
    • 레퍼런스 변환 → bad_cast 예외 발생

 

 

면접 스타일 답변 예시:

dynamic_cast는 C++에서 런타임 타입 체크를 수행하면서 안전하게 타입 변환을 할 수 있게 해주는 연산자입니다.
주로 기본 클래스 포인터를 파생 클래스 포인터로 변환할 때 즉 다운캐스팅 시 사용합니다.
static_cast는 컴파일 타임에만 체크하기 때문에 잘못된 타입을 변환하더라도 런타임 오류 없이 undefined behavior가 발생할 수 있습니다.
반면 dynamic_cast는 RTTI를 사용해 실제 객체 타입을 확인하고
타입이 일치하지 않으면 안전하게 실패하기 때문에 안정적인 다운캐스팅이 가능합니다.

'CS(전공지식) > 기술면접 준비' 카테고리의 다른 글

L-Value, R-Value란?  (0) 2025.04.04
static_cast와 dynamic_cast의 차이점은?  (1) 2025.04.03
static_cast란?  (0) 2025.04.03
스마트 포인터란?  (0) 2025.04.03
깊은 복사란?  (0) 2025.04.03
Comments