반응형
0. 요약
- 대입 연산자는 *this 참조자를 반환!
1. C++ 기본 자료형의 대입 예시
- x = y = z = 15
- (z = 15) => z에 15가 대입
- y = z => y에 z(15)가 대입
- x = y => x에 y(15)가 대입
- 결론적으로 x,y,z에 모두 15가 대입된다.
2. 사용자 정의 타입도 위의 예시가 가능하게 하자!
- 대입 관련 연산자(=, +=, -=, *=)
- *this를 return
- 객체의 참조자를 반환
class Widget{
public:
Widget& operator=(const Widget& rhs){
...
return *this;
}
}
Widget a,b,c;
a = b = c; // (O) 가능함
참고
- Effective C++
반응형
'C++ > Effective C++' 카테고리의 다른 글
[Effective C++] 12. 객체의 모든 부분을 빠짐없이 복사하자 (0) | 2021.03.15 |
---|---|
[Effective C++] 11. operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자 (0) | 2021.03.15 |
[Effective C++] 9. 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 (0) | 2021.03.15 |
[Effective C++] 8. 예외가 소멸자를 떠나지 못하도록 붙들어 놓자 (0) | 2021.03.15 |
[Effective C++] 7. 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자. (0) | 2021.03.15 |