항목 52 : 일관된 방식으로 복사하고 제거하라. ( Copy and destroy consistently. )
{ 여기서 말하는 일관된 방식은 무엇인가? 복사 생성자(T(const T&))를 정의했다면, 복사 할당자(operator=), 디스트럭터(~T()) 를 정의 하라는 것이다. 왜? 복사 생성자를 정의 했다는 의미는 무엇인가 특별한 멤버 변수를 갖는 다는 것을 의미한다. 그러므로, 복사 할당자나 디스트럭터나 특별히 무엇인가 작업을 해 주어야 한다는 것이다. 자신이 뿌린 씨앗은 자신이 거두어야 한다는 것을 의미하는 것과 같다. 복사 생성자만 그러하나? 의미를 볼땐 위의 3가지 중 하나라도 정의 했다면, 다 정의 해 주는게 좋다. 누가 좋다고 하는가? 허브 셔터와 안드레이 알렉산드레스쿠가 그런다. ... 예외는 없는가? 물론 있다. 굳이 3개를 짝으로 구현할 필요가 없다면, 안해도 된다. 이때는 애초에 정의할 ..
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 4. 3. 11:24
최근댓글