C++/Effective C++

[Effective C++] 10: 대입 연산자는 *this의 참조자를 반환하게 하자

KANTAM 2023. 10. 6. 15:24

10: 대입 연산자는 *this의 참조자를 반환하게 하자

C++의 기본제공 타입이나 표준 라이브러리에 속한 모든 타입에서는 대입 연산자가 좌변 인자에 대한 참조자를 반환하도록 구현되어 있다. 이것은 일종의 관례이니 지키는 것이 좋다. 

class Widget
{
public:
    Widget& operator=(const Widget& rhs)
    {
        ...
        return *this;                       // 좌변 객체의 참조자 반환
    }

    Widget& operaotr+=(const Widget & rhs)
    {
        ...
        return *this;                       // 모든 형태의 대입 연산자에도 동일
    }

    Widget& oeprator = (int rhs)
    {
        ...
        return *this;                       // 일반적이지 않은 경우에도 동일
    }
};

단순 대입형 연산자 말고도 모든 형태의 대입 연산자에서 지켜져야 한다.

 

이것만은 잊지 말자!

  • 대입 연산자는 *this의 참조자를 반환하도록 만들자.