정체불명의 모모
[Effective c++] 캐스팅 4종류(종합 정리) 본문
캐스팅의 4개 종류
ㅁ 캐스팅이란?
: 형(타입) 변환을 말한다.
ㅁ c++에서 제공하는 캐스트 연산자 4가지
- const_cast<T>( )
: 객체의 상수성(constness)을 없애는 용도로 사용됩니다.
- dynamic_cast<T>( )
: '안전한 다운캐스팅(safe downcasting)'을 할 때 사용하는 연산자 입니다.
즉, 주어진 객체가 어떤 클래스 상속 계통에 속한 특정 타입인지 아닌지를 결정하는 작업에 쓰입니다.
런타임 비용이 높은 캐스트 연산자 입니다.
내가 자세히 정리한 글 :
https://uncertainty-momo.tistory.com/66?category=777980 - reinterpret_cast<T>( )
: 포인터를 int로 바꾸는 등의 하부 수준 캐스팅을 위해 만들어진 연산자 입니다.
이식성이 없는 캐스팅 입니다.
내가 자세히 정리한 글 :
https://uncertainty-momo.tistory.com/72?category=777980 - static_cast<T>( )
: 암시적 변환[비상수 객체를 상수 객체로 바꾸거나, int를 double로 바꾸는 등의 변환]을 강제로 진행할 때 사용합니다.
흔히 이루어지는 타입 변환을 거꾸로 수행하는 용도(void*를 일반 타입의 포인터로 바꾸거나, 기본 클래스의 포인터를
파생 클래스의 포인터로 바꾸는 등)으로 쓰입니다.
물론 상수 객체를 비상수 객체로 캐스팅하는 데 이것을 쓸 수 없습니다.(const_cast연산자 밖에 안됩니다.)
내가 자세히 정리한 글 :
https://uncertainty-momo.tistory.com/68?category=777980
ㅁ 그 외 업캐스팅 , 다운 캐스팅
자세히 정리한 글 :
https://uncertainty-momo.tistory.com/67?category=777980
'프로그래밍(c++)' 카테고리의 다른 글
[Effective C++] Const에 대해 알아보자 (0) | 2021.10.26 |
---|---|
[C++] 가상 함수(virtual function) 와 가상함수테이블(virtual table) (0) | 2021.10.08 |
[c++] reinterpret_cast (0) | 2021.09.15 |
[c++ / 리눅스] Condition Variable (0) | 2021.09.15 |
[c언어] Mutex , cond 기본정리 (0) | 2021.09.14 |
Comments