-
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 등도 이렇게 구현되어 있다.