operator=1 항목 11 operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자 항목 10은 대입 연산자에서는 반드시 *this를 반환하라는 내용인데 c++ 기본 문법을 배웠다면 너무나도 당연한 얘기여서 건너 뛰었다. 자 이번 항목은 조금 중요한 내용인데 대입연산자를 만들때 자기 대입에 대한 처리를 해야한다는 것이다. class Widget { ... }; Widget w; ... w = w; // 자기 대입 솔직히 누가 저런식으로 코드를 멍청하게 짜겠느냐 하겠지만 만약 다음과 같은 상황이라면 충분히 가능하다. a[i] = a[j]; *px = *py; 만약 i, j가 같다면, px와 py가 가리키는 곳이 동일하다면 자기 대입은 언제든지 발생할 수 있다. 자, 그런데 자기 대입이 왜 문제가 될까? 솔직히 자기 자신을 대입하면 아무런 일이 발생하지 않을거라고 생각할지도 모른다. 그런데.. 2024. 1. 18. 이전 1 다음