과거의 캐스팅
double d = 3.141592;
int conv_i = (int)d;
C에서 사용했었던 자료형의 형 변환이다.
C++에서의 캐스팅 종류
- static_cast
- 컴파일 단계에서 형 변환에 대한 안정성 검사를 한다.
- 기본 자료형 간의 형 변환.
- 부모-자식 클래스 사이의 형 변환은 가능하지만 안전하진 않다.
- dynamic_cast
- 런타임 단계에서 형 변환에 대한 안정성 검사를 한다.
- 부모-자식 클래스 사이의 형 변환이 안전하게 처리한다.
- 단, 자식 클래스에서 부모 클래스로 형변환이 가능하다.
- 부모 클래스에서 자식 클래스로 형 변환은 하나 이상의 가상 함수를 가진 다향성 클래스에 한해서만 가능하다.
- reinterpret_cast
- 포인터/참조와 관련된 형 변환만 가능하다.
- 막무가내의 형 변환이 가능하다.(말 그대로 재해석)
- 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 |