본문 바로가기

C++

형변환 연산자

1. dynamic_cast

- 상속관계에 놓여 있는 두 클래스 사이에서 유도 클래스의 포인터 및 참조형 데이터를 기초 클래스의 포인터 및 참조형 데이터로 형변환 하는 경우 사용.

 

class A;

class B : public A;

 

A * a = new A;

B * b = new B;

A * c = new B;

 

dynamic_cast<B *>(c); --> 에러.

dynamic_cast<A *>(b); --> 성공. 유도 클래스 타입의 포인터를 기초 클래스 타입의 포인터로 변환.

 

실패 시 NULL 이 반환되니 형 변환 여부 체크 가능. 

 

 

2. static_cast

- 모든 형으로 변환이 가능하므로 주의해서 사용.

 

 

3. const_cast

- const 나 volatile 성향을 제거하는데 사용.

 

 

4. reinterpret_cast

- 전혀 상관 없는 자료형으로의 형 변환이 가능.

- 상속 같은 관계가 없어도 가능.



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

std::find()  (0) 2021.10.27
Lvalue & Rvalue  (0) 2021.10.21
포인터  (0) 2021.10.21
변수  (0) 2021.10.21
서식문자 정리  (0) 2021.10.21