ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Effective C++...9
    일지 2022. 6. 8. 07:26

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

    일종의 관례

    대입 연산은 우측 연관 연산이라는 특성을 가지며 이는 대입 시 우측에 있는 인자의 값을 대입하는 방식으로 진행된다.

    이때, 참조되는 값을 넘길 때 참조자를 반환하는 게 일종의 관례이다.

     


    int x, y, z;

    x = y = z = 15; // 이를 풀어쓰면

    x = (y = (z = 15)); 이렇게 되는데, z에 15를 대입하고 y에 값이 대입된 z를 대입하고 x에는 또 y를 대입하는 식이다.

     

    class Widget { // 클래스 구현 시 모든 대입 연산자(=, +=, -= 등)는 *this의 참조자를 반환하는 게 좋다.

    public:

        Widget& operator=(const Widget& rhs)

        {

            return *this; //이렇게 안 해도 컴파일은 된다.

        }

    }


     

    ※ STL의 vector나 string, complex 등도 이렇게 구현되어 있다.

     

    댓글

Designed by Tistory.