c++ - 有什么合理的理由使一元运算符 & 过载?

标签 c++ operator-overloading

好的,我一直是 inspired to do some head punching .似乎重载 operator& 会导致不小的痛苦。

存在哪些合理的重载情况?

(不能说我曾经这样做过......)

最佳答案

我似乎记得类似智能指针类的东西,它覆盖了 operator& 因为它想要返回包含指针的地址而不是智能指针对象的地址。不记得我在哪里看到的,也不记得当时它是否是个好主意。

啊哈,记住了:微软的 CComPtr .

编辑:概括地说,它可能在以下条件下有意义:

  • 您有一个伪装成其他对象的对象。
  • 这个对象可以获得一个指向它所伪装的东西的指针。

返回合法指针以外的任何东西都会违反 principle of least astonishment .

关于c++ - 有什么合理的理由使一元运算符 & 过载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6495977/

相关文章:

c++ - 在智能指针上调用成员函数指针

c++ - 简单的 C++ 运算符重载帮助

c++ - puts() 什么时候会失败?

c++ - qvariant_cast<std::string> 返回空字符串

c++ - 所有子串的频率

c++ - 具有重载 << 运算符的简单模板类失败, "Invalid use of template-id"

c++ - Set() 和 Get() 的重载括号运算符

c++ - Visual C++ 调试器不显示返回值

在 C 程序中使用的 C++ DLL

c++ - 在 C++ 模板(对象)中重载 operator=