F.R.I.D.A.Y.

Cpp 캐스팅 본문

DEV/C C++

Cpp 캐스팅

F.R.I.D.A.Y. 2018. 6. 20. 19:15
반응형

C++에서는 기존  C에서 지원하는 (data type)var 형식의 형변환 이외에 추가로 형변환을 지원한다.

그런데 그 형변환이 뭐가 어떻게 다른건지 굉징하 난해해서 이해하기 어려웠는데 굉장히 도움이 되었다.


1. static_cast

C언어에서 지원하는 (data type)var 의 cpp형 문법이다.

static_cast<data_type>(var) 가 cpp의 형식이다.



2. const_cast

const int a = 3;

이런 상황에서 a의 const를 특성을 지우고 싶을 때 사용한다.

혹은

int a = 3;

이라는 변수에 a의 변수값이 변하지 않는 const 특성을 넣고싶을 때 사용한다.

단, const_cast를 사용한다고 해서 const int 값을 변화시킬 수 있다던가 int 값을 const로 변경시킬수는 없다.



3. dynamic_cast

정상적으로 캐스팅이 가능한지 판단할 수 있다고 보면 된다.

만일 int *을 int로 수정한다던지 하면 정상적인 캐스팅이 안되는데 dynamic_cast는 비정상 캐스팅이 나오면 NULL을 반환하고 정상값은 캐스팅값을 리턴한다.



4. reinterpret_cast

강제 형변환이다. 어떠한 것이든 정상적으로 캐스팅이 되던 말던 상관없이 일단 형변환을 시킨다. 특수한 경우가 아니면 사용하지 않는것이 좋다고 한다.


참고 : http://egloos.zum.com/sweeper/v/1907485

728x90
반응형

'DEV > C C++' 카테고리의 다른 글

삼항 연산자 ? :  (0) 2018.09.25
WINAPI - 2018 PU PROJECT  (0) 2018.09.19
Q 폴리곤 그리기  (0) 2018.06.02
게임 - 네모로직  (0) 2018.06.01
네모로직  (0) 2018.05.30
Comments