{
static_cast 와 dynamic_cast 는 키워드에서 부터가 정적과 동적 캐스팅이라는 느낌이 온다.
static_cast 는 문법상 형변한이 가능하다면(C++의 문법) 그냥 형을 변환시킨다.
dynamic_cast 는 문법상 형변환이 가능하더라도, 실제로 형 변환이 가능한가를 런타임에 검사를 한다.
이런 차이가 있기 때문에, static_cast 가 더 빠른 장점이 있지만, 위험한 단점이 있다. 책에서의 한 구절을 옮기면 "전기세 아끼려고 불끄고 공부하다가 눈 나빠진다"라는 말(물론 내가 좀 바꾸었지만)이 있다.
그리고 dynamic_cast 를 써야 한다면, 기반 클래스의 인터페이스가 무척 부족한 것이므로, 한번쯤 디자인에 대해서도 고려를 해봐야 될 듯 싶다.
아참 dynamic_cast 가 실패 할 경우 NULL 을 리턴하므로, 체크 후 사용 할 수도 있다.
}
최근댓글