static_cast 연산자는 표현식을 type-id 유형으로 변환하지만 변환의 안전성을 보장하기 위한 런타임 유형 검사는 없습니다.
① 클래스 계층 구조에서 기본 클래스(상위 클래스)와 파생 클래스(하위 클래스) 간의 포인터 또는 참조를 변환하는 데 사용됩니다.
업캐스팅(파생 클래스의 포인터 또는 참조를 기본 클래스 표현으로 변환)은 안전합니다.
다운캐스팅(기본 클래스 포인터 또는 참조를 파생 클래스 표현으로 변환)을 수행할 때는 동적 유형 검사가 없으므로 안전하지 않습니다.
출처: http://baike.baidu.com/link?u...
궁금한 점은 굵은 글씨가 무슨 뜻인가요? 안전하지 않다은 무슨 뜻인가요?
仅有的幸福2017-06-05 11:13:51
예를 들어, 동일한 상위 클래스의 서로 다른 하위 클래스의 객체를 서로 변환하여 유형 오류를 발생시키는 상위 클래스A
,派生出两个子类B
和C
,有一个A
类指针或引用a
指向了一个B
类对象b,此时用static_cast
进行下行转换,可以将其转换成C
类的对象(指针或引用),此时就会出现不安全,因为C
类的一些成员函数/变量对B
类的对象不适用。
简单来说,就是可以利用static_cast
가 있습니다.
예: