operator=을 구현할 때, 어떤 객체가 그 자신에 대입되는 경우를 제대로 처리해야 한다. 원본 객체와 복사대상 객체의 주소를 비교해도 되고, 문장의 순서를 적절히 조정할 수도 있으며 복사 후 맞바꾸어도 된다. 두 개 이상의 객체에 대해 동작하는 함수가 있다면, 이 함수에 넘겨지는 객체들이 같은 객체인 경우에 정확하게 동작하게 해라. operator= 자기대입 처리 자기대입이란, 어떤 객체가 자기 자신에 대해 대입 연산자를 적용하는 것을 말한다. class Widget { ... }; Widget w; ... w = w; // 자기대입 이 코드는 문제가 없는 적법한 코드이다. 다음과 같은 상황에 많이 발생한다. a[i] = a[j]; // i==j라면 자기대입 *px = *py; // 가리키는 대상이..