Study/Effective C++
[effective C++] Chapter 02 : 10. 대입 연산자는 *this의 참조자를 반환하게 하자
코딩뚜벅이
2023. 8. 3. 22:25
10. 대입 연산자는 *this의 참조자를 반환하게 하자
- C++ 대입 연산자의 반환
- 이것만은 잊지 말자 !
C++ 대입 연산자의 반환
C++의 대입 연산은 사슬과 같은 형태로 이루어지며 우측 연관이라는 성질을 가지고 있다. 위의 코드를 보면 x, y, z를 선언하고 이를 15로 초기화해주고 있는데, 사실은 z의 초기화를 진행하고 다시 z를 y에 대입한 이후에 y를 x에 대입하면서 우측부터 순차적으로 초기화하는 형태로 이루어진다. 중요한 것은 대입 연산자(=)이 좌변 인자에 대한 참조자의 형태로 반환하도록 구현되어 있다는 점이다. 아래의 코드에는 참조자를 반환하는 것에 대한 관례를 알아보는 코드이다.
위는 단순 대입형 연산자이지만 좌변 객체의 참조자를 반환하게 만드는 규칙은 모든 형태의 대입 연산자에서 지켜져야 한다. 다시 아래의 코드를 확인하자.
위와 같은 형태의 대입 연산자나, 매개 변수 타입이 일반적이지 않은 경우라도 동일한 규약이 적용된다. 하지만 이는 일종의 관례로, 지키지 않더라도 에러가 발생하지는 않지만 모든 기본 제공 타입들이 따르고 있으며 string, vector, complex 등 표준 라이브러리에 속한 타입들도 따르고 있다는 것은 지키는 것이 우리에게 편하다는 의미이다.
이것만은 잊지 말자 !
대입 연산자는 *this의 참조자를 반환하도록 만들어라.