본문 바로가기

프로그래밍/C++

4가지 캐스팅

1. const_cast

 : const 변수의 상수 속성을 없애고자 할 때 사용한다. 네 종류의 방법 중 상수 속성을 없애는 유일한 캐스팅 방법이다.

 

ex)

exturn void ExFunc(char* str);

void f(const char* str)

{

    ExFunc(const_cast<char*>(str);

}

 

2. static_cast

 : 가장 일반적인 타입 변환을 수행한다.

  예를 들어 int 변수를 이용해서 double 타입의 결과값을 계싼할 때 정수 나눗셈이 발생하지 않게 하려면 static_cast를 이용해서 int 변수를 double로 변환한다.

 

ex)

int i = 3;

int j = 4;

double result = static_cast<double>(i) / j;

 

3. reinterpret_cast

 : 특별한 상황에서 타입 간 변환을 강제적으로 할 수 있다.

 

4. dynamic_cast

 : RTTI 검사를 수행하여 해당 변환이 적합한 클래스 계층 간 이동인지 확인한다.

  타입 검사를 하기 위해서는 클래스에 하나 이상의 virtual이 있어야 한다. 없다면 컴파일 에러가 발생한다.

 

'프로그래밍 > C++' 카테고리의 다른 글

this  (0) 2019.06.28
RTTI (Run Time Type Information)  (0) 2019.06.27
map  (0) 2019.06.24
list  (0) 2019.06.21
vector 1부  (0) 2019.06.20