-
static cast
- 통상적으로 float과 int와 같은 캐스팅 or 상속관계에 있을때 부모에서 자식 혹은 자식에서 부모같은 관계에서 static cast 사용
-
dynamic cast
- static cast의 단점을 약간 보완, 상속관계에서만 활용하는건데 상속관계에서 안전한 형 변환을 지원해 주는 캐스팅
- virtual 함수를 하나라도 만들면 가상함수 테이블의 주소가 기입되고 이걸 이용해 무작정 캐스팅을 하는게 아닌 맞는 타입인지 체크한뒤 캐스팅을 해준다. 만약 잘못 만들어주게 되면 널포인터를 반환
-
const_cast
- const가 붙은 걸 떼주거나 붙이거나 할때만 사용
-
reinterpret_cast
- 전혀 상관관계가 없는 애를 캐스팅해줄때(의미관계를 사용자가 명확해질수가 있는 효과) 거의 사용x