{
static_cast 와 dynamic_cast 는 키워드에서 부터가 정적과 동적 캐스팅이라는 느낌이 온다.

static_cast 는 문법상 형변한이 가능하다면(C++의 문법) 그냥 형을 변환시킨다.
dynamic_cast 는 문법상 형변환이 가능하더라도, 실제로 형 변환이 가능한가를 런타임에 검사를 한다.

이런 차이가 있기 때문에, static_cast 가 더 빠른 장점이 있지만, 위험한 단점이 있다. 책에서의 한 구절을 옮기면 "전기세 아끼려고 불끄고 공부하다가 눈 나빠진다"라는 말(물론 내가 좀 바꾸었지만)이 있다.

그리고 dynamic_cast 를 써야 한다면, 기반 클래스의 인터페이스가 무척 부족한 것이므로, 한번쯤 디자인에 대해서도 고려를 해봐야 될 듯 싶다.

아참 dynamic_cast 가 실패 할 경우 NULL 을 리턴하므로, 체크 후 사용 할 수도 있다.

}

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기