What legitimate reasons exist to overload the unary operator&?

前端 未结 7 1820
悲哀的现实
悲哀的现实 2020-11-28 07:39

Okay, I\'ve been inspired to do some head punching. Seems like overloading operator& leads to not a small amount of pain.

What legitimate cases exis

7条回答
  •  清酒与你
    2020-11-28 07:42

    I seem to remember something like a smart pointer class which overrode operator& because it wanted to return the address of the contained pointer rather than the address of the smart pointer object. Can't remember where I saw it or whether it seemed like a good idea at the time.

    Aha, remembered: Microsoft's CComPtr.

    Edit: To generalize, it might make sense under the following conditions:

    • You have an object which is masquerading as some other object.
    • This object can obtain a pointer to the thing it's masquerading as.

    Returning anything other than a legitimate pointer would violate the principle of least astonishment.

提交回复
热议问题