다음을 통해 공유


캐스팅

C + + 언어 클래스 가상 함수를 포함 하는 기본 클래스에서 파생 되는 경우는 구현이 파생된 클래스 개체에 있는 가상 함수를 호출 하는 기본 클래스 형식에 대 한 포인터를 사용할 수 있습니다.가상 함수를 포함 하는 클래스 "다형 클래스" 라고도

파생된 클래스는 모든 기본 클래스의 파생 된 정의 완전히 포함 하기 때문에 이러한 기본 클래스의 클래스 계층 구조에 대 한 포인터를 캐스팅 해도 됩니다.에 대 한 포인터를 기본 클래스에 지정 된 경우 계층 구조 아래로 마우스 포인터를 캐스팅 해도 안전한 수 있습니다.기본 클래스에서 파생 되는 형식 개체를 가리키는 되 고 실제로 인 경우 안전입니다.이 경우 실제 개체의 "전체 객체입니다." 라고 하위 "개체"의 완전 한 개체를 가리키도록 포인터를 기본 클래스 라고 합니다.예를 들어, 다음 그림의 클래스 계층 구조를 고려 하십시오.

클래스 계층 구조

클래스 계층 구조 그래픽

형식의 개체를 C 는 다음 그림에서와 같이 시각화할 수 있습니다.

클래스 C B 하위 개체 및 하위 개체

B 하위 개체 및 A 하위 개체 포함 클래스 C

클래스의 인스턴스가 지정 C, 되는 B 하위 개체 하는 A 하위 개체입니다.인스턴스를 C를 비롯 하 여 해당 A 및 B 개체나 하위, "전체 개체가 있습니다."

런타임 형식 정보를 사용 하 여 포인터가 전체 개체에 실제로 가리키는 있는지 여부를 확인할 수 되 고 해당 계층 구조에서 다른 개체를 가리키도록 안전 하 게 캐스팅할 수 있습니다.해당 dynamic_cast 이러한 캐스트 형식을 사용 하려면 연산자를 사용할 수 있습니다.또한 작업을 안전 하 게 하는 데 필요한 런타임 검사를 수행 합니다.

Nonpolymorphic 종류의 변환에 사용할 수 있는 static_cast 연산자 (이 여기서 설명 차이점은 정적 및 동적 캐스팅 변환 사이 및 사용 가능한 경우).

이 단원에서는 다음 항목에 대해 설명합니다.

참고 항목

참조

식 (C++)