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의 참조자를 반환하도록 만들자.
'C++ > Effective C++' 카테고리의 다른 글
[Effective C++] 12: 객체의 모든 부분을 빠짐없이 복사하자 (0) | 2023.10.08 |
---|---|
[Effective C++] 11: operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자 (0) | 2023.10.07 |
[Effective C++] 09: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 (1) | 2023.10.05 |
[Effective C++] 08: 예외가 소멸자를 떠나지 못하도록 붙들어 놓자 (1) | 2023.10.05 |
[Effective C++] 07: 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 (0) | 2023.10.03 |