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의 참조자를 반환하도록 만들자.