Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 일반 캐스트 대 static_cast 대 dynamic_cast


static_cast - 일반/일반 유형 변환에 사용됩니다. 이것은 또한 암시적 형식 강제 변환을 담당하는 캐스트이며 명시적으로 호출할 수도 있습니다. float를 int로, char를 int로 변환하는 경우 등의 경우에 사용해야 합니다.

dynamic_cast - 이 캐스트는 다형성을 처리하는 데 사용됩니다. 파생 클래스로 캐스팅할 때만 사용해야 합니다. 이것은 기본 클래스에서 파생 클래스로 형변환할 때 상속에서만 사용됩니다.

일반 캐스팅 - 이것은 const_cast, static_cast 및 reinterpret_cast를 결합하므로 C++에서 사용할 수 있는 가장 강력한 캐스트입니다. 그러나 dynamic_cast를 사용하지 않기 때문에 안전하지도 않습니다. 이를 C 스타일 캐스트라고도 합니다.

기타 사용 가능한 캐스트

const_cast − 변수에 const를 제거하거나 추가하는 데 사용할 수 있습니다. 이것은 변수에서 constness를 추가/제거해야 하는 경우 유용할 수 있습니다.

reinterpret_cast - 이것은 사용하기 가장 까다롭습니다. 비트 패턴을 재해석하는 데 사용되며 매우 낮은 수준입니다. 원시 데이터 비트 스트림을 실제 데이터로 변환하거나 정렬된 포인터의 하위 비트에 데이터를 저장하는 것과 같은 작업에 주로 사용됩니다.