과거의 캐스팅

double	d = 3.141592;
int	conv_i = (int)d;

C에서 사용했었던 자료형의 형 변환이다.

 


C++에서의 캐스팅 종류

  1. static_cast
    • 컴파일 단계에서 형 변환에 대한 안정성 검사를 한다.
    • 기본 자료형 간의 형 변환.
    • 부모-자식 클래스 사이의 형 변환은 가능하지만 안전하진 않다.
  2. dynamic_cast
    • 런타임 단계에서 형 변환에 대한 안정성 검사를 한다.
    • 부모-자식 클래스 사이의 형 변환이 안전하게 처리한다.
    • 단, 자식 클래스에서 부모 클래스로 형변환이 가능하다.
    • 부모 클래스에서 자식 클래스로 형 변환은 하나 이상의 가상 함수를 가진 다향성 클래스에 한해서만 가능하다.
  3. reinterpret_cast
    • 포인터/참조와 관련된 형 변환만 가능하다.
    • 막무가내의 형 변환이 가능하다.(말 그대로 재해석)
  4. const_cast
    • const의 성질을 제거하기 위한 형 변환이다.
    • 하지만 const의 성질을 제거했더라도 실제 데이터를 직접 접근하여 변경하지는 못한다.

'42일기' 카테고리의 다른 글

ft_containers[Map]  (0) 2022.04.26
CPP [템플릿]  (0) 2022.03.02
CPP [OOP 상속성]  (0) 2022.02.15
MINIRT(1)  (0) 2022.01.12
Minishell(3)  (0) 2021.12.20

+ Recent posts