static_cast
static_cast<double>(total)숫자 변환처럼 컴파일 시점에 관계가 분명한 변환에 쓴다.
C 스타일 캐스트는 “바꿔라”만 말하지만, C++ 캐스트는 숫자 변환인지, 런타임 타입 확인인지, const 조정인지까지 코드에 남깁니다.
static_cast<double>(total)숫자 변환처럼 컴파일 시점에 관계가 분명한 변환에 쓴다.
dynamic_cast<Derived*>(p)상속 계층에서 실제 객체 타입 확인이 필요한 다운캐스트에 쓴다.
const_cast<char*>(p)API 경계에서 const 속성만 조정해야 할 때 제한적으로 쓴다.
reinterpret_cast<T*>(raw)비트 패턴을 다른 타입처럼 재해석한다. 일반 코드에서는 피한다.