캐스팅
C + + 언어 클래스 가상 함수를 포함 하는 기본 클래스에서 파생 되는 경우는 구현이 파생된 클래스 개체에 있는 가상 함수를 호출 하는 기본 클래스 형식에 대 한 포인터를 사용할 수 있습니다.가상 함수를 포함 하는 클래스 "다형 클래스" 라고도
파생된 클래스는 모든 기본 클래스의 파생 된 정의 완전히 포함 하기 때문에 이러한 기본 클래스의 클래스 계층 구조에 대 한 포인터를 캐스팅 해도 됩니다.에 대 한 포인터를 기본 클래스에 지정 된 경우 계층 구조 아래로 마우스 포인터를 캐스팅 해도 안전한 수 있습니다.기본 클래스에서 파생 되는 형식 개체를 가리키는 되 고 실제로 인 경우 안전입니다.이 경우 실제 개체의 "전체 객체입니다." 라고 하위 "개체"의 완전 한 개체를 가리키도록 포인터를 기본 클래스 라고 합니다.예를 들어, 다음 그림의 클래스 계층 구조를 고려 하십시오.
클래스 계층 구조
형식의 개체를 C 는 다음 그림에서와 같이 시각화할 수 있습니다.
클래스 C B 하위 개체 및 하위 개체
클래스의 인스턴스가 지정 C, 되는 B 하위 개체 하는 A 하위 개체입니다.인스턴스를 C를 비롯 하 여 해당 A 및 B 개체나 하위, "전체 개체가 있습니다."
런타임 형식 정보를 사용 하 여 포인터가 전체 개체에 실제로 가리키는 있는지 여부를 확인할 수 되 고 해당 계층 구조에서 다른 개체를 가리키도록 안전 하 게 캐스팅할 수 있습니다.해당 dynamic_cast 이러한 캐스트 형식을 사용 하려면 연산자를 사용할 수 있습니다.또한 작업을 안전 하 게 하는 데 필요한 런타임 검사를 수행 합니다.
Nonpolymorphic 종류의 변환에 사용할 수 있는 static_cast 연산자 (이 여기서 설명 차이점은 정적 및 동적 캐스팅 변환 사이 및 사용 가능한 경우).
이 단원에서는 다음 항목에 대해 설명합니다.