본문 바로가기
Book & Lecture/Effective C++

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

by studio ODOC 2023. 2. 13.
반응형

Effective C++ 항목10

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

 

  • C++의 대입 연산자는 여러 개가 사슬처럼 엮일 수 있다.
int x, y, z;
x = y = z = 15; 

// 위 식은 아래와 같이 처리됨
x = (y = (z = 15)));
  • 위와 같은 관례를 지키는 것이 편한 길.
  • 따라서 각종 객체의 대입 연산자는 좌변 인자에 대한 참조자를 반환해야함
  • 연산자 =, +=, -=의 경우 아래와 같은 꼴로 반환 처리
class Widget
{
  public:
    Widget& operator=(const Widget& rhs) // =연산자
    {
      ...
      return *this;
    }
    Widget& operator+=(const Widget& rhs) // +=연산자
    {
      ...
      return *this;
    }
    Widget& operator-=(const Widget& rhs)// -=연산자
    {
      ...
      return *this;
    }
};

 

요약

1. 대입 연산자는 *this 참조자(좌변 인자 참조자)를 반환하도록 구현하자

반응형