본문 바로가기

책 정리/Effective C++ 3판

(58)
드디어 다 읽었다. Effective C++ 3판을 다 보았다. 계획데로 4번은 더 읽어야 겠다. 놓치고 지나간것들이 있을 수 있으니, 정리한것과 비교하면서 다시 봐야 한다. 한번 읽고 많은 변화를 겪었던 나로선 두번째 읽을 때 더 많은 기대를 하게 된다.^^
항목 55: Boost! 부스트를 늘 여러분 가까이에 내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 .. 왜냐하면, 막강하면서 최신 기술들이 많이 있는 곳이기 때문이다. 이것만은 잊지 말자. http://www.boost.org
항목 54: TR1을 포함한 표준 라이브러리 구성요소와 편안한 친구가 되자 내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 ... 한마디로 요약된다. 힘들게 만들어야 하는 대부분은 표준 라이브러리에 있고, 최신 표준 라이브러리 후보들은 TR1에 있기 때문이다. 쭉.. 읽기만 하면 된다. 이것만은 잊지 말자! 1. TR1은 단순한 명세서일뿐, TR1 을 구할 수 있는 자료처 중 한곳은 boost 이다.
항목 53: 컴파일러 경고를 지나치지 말자 내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 이번 53항목의 주제는 "컴파일러 경고를 쉽게 생각하지 마라. 믿는 도끼에 발등 찍힌다." 로 요약된다. 즉, 경고에 대해서 사용자가 빠삭하게 알고 있다 하더라도, 경우에 따라서 그 경고가 오작동을 불러 일으키게 된다는 말이다. 스콧마이어스님이 말씀하시는것은 컴파일 경고레벨단계를 높여서 모든 경고를 잡는 방향으로 코딩하는게 좋다고 말씀 주신다. ... 말이야 맞는 말이지만... 이건 보통 성가신게 아니다.^^; 컴파일러가 알려주는 에러에 대해서 적응하다보..
항목 52: 위치지정 new를 작성한다면 위치지정 delete도 같이 준비하자. 내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 이번 항목은 위치지정이라는 재미있는 operator new 를 정의해야 할 때, 조심해야 할 점에 대한 이여기가 주가 된다. 우선 위치지정(placement) operator new 라는것이 생소하게 들릴수 있어도, 크게 무리 없이 이해가 되는 operator new 이다. 이 operator new로 말할것 같으면, 내가 원하는 공간에 메모리를 할당 받을 수 있게 해준다. 원조는 STL vector 에서 쓰였다고 한다. 이런 위치지정(placement)..
항목 51: new 및 delete를 작성할 때 따라야 할 기존의 관례를 잘 알아 두자. 내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 저번 항목까지는 언제 무엇을 위해 new 및 delete를 작성하는지 개념에 대해서 이야기 했지만, 이번 항목에선 어떻게 작성해야 하는지, 그 관례를 들어 설명해 주는 장이다. new 의 관례 1. 메모리 할당이 0바이트라면 1바이트로 간주해야 한다. 2. 메모리 할당 작업은 "무한루프" 안에서 이루어 져야 한다. - 이때 성공하거나 실패했을 때, 이 무한 루프 밖으로 나가야 한다. - 실패 했을 경우, http://ikpil.com/572 처럼 new_..
항목 50: new 및 delete를 언제 바꿔야 좋은 소리를 들을지를 파악해 두자 내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 new 나 delete 를 바꾸는것이 아니라 operator new 와 operator delete 를 오버로딩 하여 바꾸는 것이다. 그리고 이 오버로딩으로 재정의 되면, 사용자가 일일이 다 지정해 주어야 하는 관례들이 있다. 이 관례를 따라서 구현을 할 때 조금이라도 실수를 한다면, ... 악영향을 많이 미치기 때문에, 굳이 변경 할 여력이 되지 않는다면 변경하지 않는게 더 좋다고 말한다. 기본적으로 컴파일러가 재공하는 operator new 와 ope..
항목 49: new 처리자의 동작 원리를 제대로 이해하자. 내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 이번 항목은 new 처리자에 대한 개념과 어디에 주로 사용되는지에 대해서 알려 준다. new 처리자 곰곰히 들으면 잘 모르니, 우선 말로만 설명 풀이 해보자. 우리는 메모리를 할당하기 위해서 new 연산을 이용한다. 하지만 자세히 들어가보면 operator new 가 호출되고 new 가 호출되는 구조로 이어진다. 그러니까 operator new -> new 를 처리 한다. 이때 operator new 는 우리 스스로가 오버로딩 하여 재정의 할 수 있지만 ..