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