Conversion

형 변환 규칙

컴파일러가 자동으로 바꾸는 변환은 편하지만, 소수점 절삭이나 범위 축소처럼 정보 손실을 만들 수 있습니다.

암시적 변환intdouble을 더하면 보통 더 넓은 타입으로 승격된 뒤 계산됩니다.
명시적 의도손실 가능성을 알고 선택했다면 C++ 스타일 캐스트로 의도를 드러냅니다.
static_cast

일반적인 타입 변환을 명시합니다

숫자 변환, 업캐스트, 관련 타입 변환처럼 컴파일 시점에 확인 가능한 변환에 씁니다.

dynamic_cast

다형 타입을 런타임에 확인합니다

상속 계층에서 안전한 다운캐스트가 필요한 경우 실패 가능성을 검사합니다.

const_cast

const 속성만 조정합니다

정말 필요한 경우에만 사용하며, 원래 const 객체를 수정하면 정의되지 않은 동작이 될 수 있습니다.

절삭double pi = 3.14;int에 넣으면 소수점 이하가 사라집니다.
정수 나눗셈5 / 2는 정수끼리의 연산이라 2가 되며, 실수 결과가 필요하면 한쪽을 변환합니다.
reinterpretreinterpret_cast는 비트 해석을 바꾸는 저수준 도구라 이식성과 안전성 위험이 큽니다.

변환 손실 형 변환을 볼 때는 변환 전후의 값 범위, 정밀도, 소유권이나 const 의미가 보존되는지 확인합니다.