면접에서 매번 나오는 단골 질문이다.

 

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

+ Recent posts