본문 바로가기
C,C++

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

by matters_ 2019. 7. 24.

오늘은 쉬어가는 타임으로 비교적 간단한 주제를 다루려고 한다.

알다싶히 C++의 대입 연산은 여러 개가 사슬처럼 엮일 수 있는 재미있는 성질을 갖고 있다.

x = y = z = 15;

위의 코드는 아래와 같이 우측 연관 연산이라는 사슬로 이어진다.

x = (y = (z = 15));

위와 같은 결과가 나오려면 대입 연산자가 좌변 인자에 대한 참조자를 반환하도록 구현되어있다는 의미이다.

class Widget {
public:
    Widget& operator= (const Widget& rhs)
    {
        return *this;
    }
};

위의 class가 = 가 아닌 +=,-=,*= 등 매개변수 타입이 일반적이지 않은 경우에도 동일한 규칙이 적용된다. 

오늘은 이것으로 끄웃~ㅎㅎ

댓글