항목 93 : 포인터에 대한 static_cast 사용은 피하라. ( Avoid using static_cast on pointers. )
{ static_cast 와 dynamic_cast 는 키워드에서 부터가 정적과 동적 캐스팅이라는 느낌이 온다. static_cast 는 문법상 형변한이 가능하다면(C++의 문법) 그냥 형을 변환시킨다. dynamic_cast 는 문법상 형변환이 가능하더라도, 실제로 형 변환이 가능한가를 런타임에 검사를 한다. 이런 차이가 있기 때문에, static_cast 가 더 빠른 장점이 있지만, 위험한 단점이 있다. 책에서의 한 구절을 옮기면 "전기세 아끼려고 불끄고 공부하다가 눈 나빠진다"라는 말(물론 내가 좀 바꾸었지만)이 있다. 그리고 dynamic_cast 를 써야 한다면, 기반 클래스의 인터페이스가 무척 부족한 것이므로, 한번쯤 디자인에 대해서도 고려를 해봐야 될 듯 싶다. 아참 dynamic_cast ..
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 4. 16. 23:50
최근댓글