정체불명의 모모

[Effective c++] 캐스팅 4종류(종합 정리) 본문

프로그래밍(c++)

[Effective c++] 캐스팅 4종류(종합 정리)

정체불명의 모모 2021. 10. 26. 15:40
캐스팅의 4개 종류

ㅁ 캐스팅이란? 

: 형(타입) 변환을 말한다.

 

ㅁ c++에서 제공하는 캐스트 연산자 4가지

  1. const_cast<T>( )
    : 객체의 상수성(constness)을 없애는 용도로 사용됩니다.
     
  2. dynamic_cast<T>( )
    : '안전한 다운캐스팅(safe downcasting)'을 할 때 사용하는 연산자 입니다.
        즉, 주어진 객체가 어떤 클래스 상속 계통에 속한 특정 타입인지 아닌지를 결정하는 작업에 쓰입니다.
       런타임 비용이 높은 캐스트 연산자 입니다.

    내가 자세히 정리한 글 :
    https://uncertainty-momo.tistory.com/66?category=777980

  3. reinterpret_cast<T>( )
    : 포인터를 int로 바꾸는 등의 하부 수준 캐스팅을 위해 만들어진 연산자 입니다.
      이식성이 없는 캐스팅 입니다.

    내가 자세히 정리한 글 :
    https://uncertainty-momo.tistory.com/72?category=777980
  4. static_cast<T>( )
    : 암시적 변환[비상수 객체를 상수 객체로 바꾸거나, int를 double로 바꾸는 등의 변환]을 강제로 진행할 때 사용합니다.
       흔히 이루어지는 타입 변환을 거꾸로 수행하는 용도(void*를 일반 타입의 포인터로 바꾸거나, 기본 클래스의 포인터를 
       파생 클래스의 포인터로 바꾸는 등)으로 쓰입니다.
       물론 상수 객체를 비상수 객체로 캐스팅하는 데 이것을 쓸 수 없습니다.(const_cast연산자 밖에 안됩니다.)

          내가 자세히 정리한 글 : 
        https://uncertainty-momo.tistory.com/68?category=777980

 

[c++]static_cast 란?

static_cast란? : 기본 자료형의 형변환 및 기본(base) 클래스에서 파생(derived) 클래스로의 포인터 변환 연산에 사용할 수 있다.  형 변환 시점이 컴파일 시점이기 때문에 static 이라는 명칭이 붙는다.

uncertainty-momo.tistory.com


ㅁ 그 외 업캐스팅 , 다운 캐스팅 
자세히 정리한 글 :
https://uncertainty-momo.tistory.com/67?category=777980

 

[이론] 업캐스팅과 다운캐스팅이란??(필요성, 예제)

업 캐스팅이란? : 업캐스팅이란 기본 클래스 포인터로 파생클래스 객체를 가리키는 것 입니다. 업 캐스팅을 하게되면 기본 클래스에 정의된 멤버만 호출할 수 있기 때문에 파생 클래스 고유의

uncertainty-momo.tistory.com

 

Comments