cast operator
C++에서는 형변환을 위한 연산자를 제공한다
dynamic_cast
dynamic cast는 두 가지의 경우에서 사용할 수 있다.
첫째는 상속 관계에 놓여 있는 두 클래스 사이에서 유도 클래스의 포인터 및 참조형 데이터를 기초 클래스의 포인터 및 참조형 데이터로 형 변환하는 경우이다.
둘때는 polymorphic 클래스에서 상속 관계에 놓여있는 두 클래스 사이에서 기초 클래스의 포인터 및 참조형 데이터를 유도 클래스의 포인터 및 참조형 데이터로 형 변환하는 경우이다.
static_cast
유도 클래스의 포인터 및 참조형 데이터를 기초 클래스의 포인터 및 참조형 데이터뿐만 아니라 기초 클래스의 포인터 및 참조형 데이터도 유도 클래스의 포인터 및 참조형 데이터로 조건 없이 변환한다. 하지만 책인은 개발자의 몫이다.
const_cast
포인터와 참조자의 const 키워드의 성향을 제거한다.
reinterpret_cast
전혀 상관없는 자료형의로의 형 변환에 사용된다.
c++
1 | namespace VirtualClass { |