나는, 멤버 액세스 연산자를 제외한 대부분의 연산자 오버로딩을 이해 ->
, .*
, ->*
등
특히,이 연산자 함수로 전달되는 것은 무엇이고 무엇을 반환해야합니까?
운영자 기능 (예 operator->(...)
:)은 어떤 멤버가 참조되고 있는지 어떻게 알 수 있습니까? 알 수 있습니까? 심지어 알아야합니까?
마지막으로 고려해야 할 const 고려 사항이 있습니까? 예를 들어과 같은 것을 오버로드 할 때는 operator[]
일반적으로 const 버전과 non-const 버전이 모두 필요합니다. 멤버 액세스 연산자에는 const 및 non-const 버전이 필요합니까?
const
비 const
버전의 버전은 필요operator->
하지 않지만 둘 다 제공하면 유용 할 수 있습니다.
->*
및 오버로드 방법이 설명되어 있지 않습니다 .*
. 사실, 그것들은 언급조차하지 않습니다! 나는 그들이 FAQ에 드물게 있다고 생각하지만,이 질문을 FAQ에서 기꺼이 연결합니다. FAQ의 속임수로 이것을 닫지 마십시오!