c++ - 예제 - operator




왜 누군가는 &(address-of) 연산자에 과부하를 걸겠습니까? (3)

가능한 중복 :
단항 연산자 &를 과부하시키는 합법적 인 이유는 무엇입니까?

방금 이 질문을 읽었습니다.

왜 누군가는 & ( "주소 - of") 연산자를 과부하하고 싶어할까요?

   some_class* operator&() const { return address_of_object; }

합법적 인 유스 케이스가 있습니까?


나는 이것을 생산적인 코드에서 이미 보았다.

그러나 거기에는 struct 의 내용에 대한 이진 표현이 반환되었습니다.

그리고 유스 케이스는 간단했습니다 : 바이너리 작업.


어떤 종류의 랩퍼 오브젝트를 다루는 경우, 랩퍼에 대한 액세스를 포함 된 오브젝트로 투명하게 전달하거나 전달해야 할 수도 있습니다. 이 경우 래퍼에 대한 포인터를 반환 할 수는 없지만 주소 연산자를 오버로드하여 포함 된 개체에 대한 포인터를 반환해야합니다.


왜냐하면 그들은 악마이기 때문에 당신이 고통 받기를 원합니다.

아니면 프록시 개체를 사용하는 것 같아요? 컨테이너 대신 관리 대상 객체에 대한 포인터를 반환 할 수도 있습니다.하지만 getter 함수를 사용하여 관리 작업을 수행 할 수도 있습니다. 그렇지 않으면 boost::addressof 와 같은 것을 사용하는 것을 기억해야합니다.





address-operator