면접에서 매번 나오는 단골 질문이다.
static_cast
타입 원칙에 비춰볼 때 상식적인 캐스팅만 허용해준다. C스타일의 타입 변환을 대체한다고 보면 된다.
ex) int <-> float, 다운 캐스팅
dynamic_cast
상속 관계에서의 안전한 형 변환을 지원한다.
RTTI(Runtime Type Information). 다형성을 활용한다. 즉, 가상 함수가 존재하는 클래스에만 사용할 수 있다.
vftable을 이용한다.
만약 잘못된 타입으로 캐스팅 시, nullptr을 반환해준다.
const_cast
const를 붙이거나 뗄 때 사용한다.
사용할 일은 거의 없다고 보면 된다.
reinterpret_cast
가장 위험하고 강력한 형태의 캐스팅.
ex) 포인터랑 전혀 관계없는 다른 타입 변환 등
'C++ > Rookiss C++' 카테고리의 다른 글
[디버깅] (0) | 2022.08.30 |
---|---|
전방선언 (0) | 2022.08.29 |
[동적 할당] 얕은 복사 vs 깊은 복사 (0) | 2022.08.29 |
[동적 할당] 타입 변환 (0) | 2022.08.29 |
[동적 할당] 동적 할당 (0) | 2022.08.28 |