항목 95 : C 스타일의 캐스팅은 사용하지 말라. ( Don’t use C-style casts. )
{ 정말 여러가지 이유가 있지만 대표적으로 꼽자면, 가독성이 떨어진다는 점과, reinterpret_cast 보다 더 강력한 cast 이기 때문이다. 그 강력함 중 하나를 설명한다. 포인터는 그 정의가 보이지 않더라도 전방선언으로 마치 보인것 처럼 컴파일러를 속여 컴파일 하게 할 수 있다. 이러한 상태에서 형 변환을 하게 되면, 정의가 보이지 않는데도 형 변환이 가능하게 된다. 이때 해당 정의가 보이지 않기 때문에 메모리 레이아웃을 맞추지 못하고 결국 어떤 일을 할지 모르는 포인터가 만들어 지게 된다. 그런데 VC 2008 에선 .. 잘 된다.. 해당 소스 코드를 첨부 하오니, 한번 테스트 해 보심이 좋을 것 같다. Func.cpp 의 7 라인에 break point 를 걸어서, dp의 멤버 변수가 있고..
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 4. 16. 23:56
최근댓글