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 |