KoreanFoodie's Study
Effective C++ | 항목 10 : 대입 연산자는 *this 의 참조자를 반환하게 하자 본문
Tutorials/C++ : Advanced
Effective C++ | 항목 10 : 대입 연산자는 *this 의 참조자를 반환하게 하자
GoldGiver 2022. 10. 25. 16:06
C++ 프로그래머의 필독서이자 바이블인, 스콧 마이어스의 Modern Effective C++ 를 읽고 기억할 내용을 요약하고 있습니다. 꼭 읽어보시길 추천드립니다!
항목 10 : 대입 연산자는 *this 의 참조자를 반환하게 하자
핵심 :
대입 연산자는 *this 의 참조자를 반환하도록 만들어라
C++ 의 대입 연산은 여러 개가 사슬처럼 엮일 수 있다.
int x, y, z;
// 대입은 우측 연관(right-associative)이다.
x = y = z = 15;
// 따라서 위 식은 실제로 아래와 같다
x = (y = (z = 15)));
대입 연산이 사슬처럼 엮이려면 대입 연산자가 좌변 인자에 대한 참조자를 반환하도록 구현하는 것이 좋다(일종의 관례[convention] 이다). 이는 += , -= 의 경우에도 마찬가지이다.
class Widget
{
public:
Widget& operator=(const Widget& rhs)
{
// 대입 연산 수행
...
return *this;
}
Widget& operator=(const Widget& rhs)
{
// 연산 수행
...
return *this;
}
Widget& operator=(const Widget& rhs)
{
// 연산 수행
...
return *this;
}
};
'Tutorials > C++ : Advanced' 카테고리의 다른 글
Effective C++ | 항목 12 : 객체의 모든 부분을 빠짐없이 복사하자 (0) | 2022.10.25 |
---|---|
Effective C++ | 항목 11 : operator= 에서는 자기대입에 대한 처리가 빠지지 않도록 하자 (0) | 2022.10.25 |
Effective C++ | 항목 9 : 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 (0) | 2022.10.25 |
Effective C++ | 항목 8 : 예외가 소멸자를 떠나지 못하도록 붙들어 놓자 (0) | 2022.10.25 |
Effective C++ | 항목 7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 (0) | 2022.10.25 |
Comments