>  Q&A  >  본문

c++ - static_cast에 관한 질문

static_cast 연산자는 표현식을 type-id 유형으로 변환하지만 변환의 안전성을 보장하기 위한 런타임 유형 검사는 없습니다.
① 클래스 계층 구조에서 기본 클래스(상위 클래스)와 파생 클래스(하위 클래스) 간의 포인터 또는 참조를 변환하는 데 사용됩니다.
업캐스팅(파생 클래스의 포인터 또는 참조를 기본 클래스 표현으로 변환)은 안전합니다.
다운캐스팅(기본 클래스 포인터 또는 참조를 파생 클래스 표현으로 변환)을 수행할 때는 동적 유형 검사가 없으므로 안전하지 않습니다.

출처: http://baike.baidu.com/link?u...

궁금한 점은 굵은 글씨가 무슨 뜻인가요? 안전하지 않다은 무슨 뜻인가요?

阿神阿神2665일 전791

모든 응답(1)나는 대답할 것이다

  • 仅有的幸福

    仅有的幸福2017-06-05 11:13:51

    예를 들어, 동일한 상위 클래스의 서로 다른 하위 클래스의 객체를 서로 변환하여 유형 오류를 발생시키는 상위 클래스A,派生出两个子类BC,有一个A类指针或引用a指向了一个B类对象b,此时用static_cast进行下行转换,可以将其转换成C类的对象(指针或引用),此时就会出现不安全,因为C类的一些成员函数/变量对B类的对象不适用。
    简单来说,就是可以利用static_cast가 있습니다.
    예:

    으아아아

    회신하다
    0
  • 취소회신하다