[Effective C++] 07. operator= 에서는 자기대입에 대한 처리가 빠지지 않도록 하자
·
C++/[서적] Effective C++
자기 대입class Widget { };Widget w;w = w; // 자기 대입자기 대입이란 어떤 객체가 자기 자신에 대해 대입 연산자를 적용하는 것을 의미한다.이러한 자기 대입은 여러 곳에서 하나의 객체를 참조하는 상태, 중복참조(aliasing)라고 불리는 것 때문에 발생한다.위의 경우 문제가 되지 않지만, 리소스를 직접 관리하는 클래스의 경우 문제가 발생한다. 문제 상황class Bitmap { };class Widget {...private: Bitmap *pb;};Widget& Widget::operator=(const Widget& rhs){ delete pb; pb = new Bitmap(*rhs.pb); return *this;}// main.cppint ..