반응형
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 참조자(좌변 인자 참조자)를 반환하도록 구현하자
반응형
'Book & Lecture > Effective C++' 카테고리의 다른 글
Effective C++ 항목12 : 객체의 모든 부분을 빠짐없이 복사하자 (0) | 2023.02.19 |
---|---|
Effective C++ 항목11 : operator에서는 자기대입에 대한 처리가 빠지지 않도록 하자 (0) | 2023.02.18 |
Effective C++ 항목9 : 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 (0) | 2023.02.12 |
Effective C++ 항목8 : 예외가 소멸자를 떠나지 못하도록 붙들어 놓자 (0) | 2023.02.06 |
Effective C++ 항목7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자. (0) | 2023.02.05 |