여러가지 상황에서 사용되는 캐스팅 방법 정리

상황 캐스팅 방법
const 속성 제거 const_cast
int, double 간 변환처럼 언어 자체에서 허용되는 변환을 명시적으로 수행 static_cast
커스텀 생성자나 변환 연산자가 구현되어 있을 때의 명시적인 변환 static_cast
전혀 관계없는 두 객체 간의 변환 불가능
같은 클래스 계층에 속하는 서로 다른 클래스 객체의 포인터 간 변환 dynamic_cast(권장) 또는 static_cast
같은 클래스 계층에 속하는 서로 다른 클래스 객체의 참조 간 변환 dynamic_cast(권장) 또는 static_cast
전혀 관계없는 두 포인터 간의 변환 reinterpret_cast
전혀 관계없는 두 참조 간의 변환 reinterpret_cast
함수 포인터 간의 변환 reinterpret_cast

 

+ Recent posts