重载一元运算符& 有哪些合理的理由?

2023-12-11

好吧,我已经受到启发去做一些头部冲孔。好像超载了operator&导致不小的疼痛。

存在哪些合法的超载情况?

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


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

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

Edit:概括来说,它might在以下条件下有意义:

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

返回合法指针以外的任何内容都会违反最小惊讶原则.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重载一元运算符& 有哪些合理的理由? 的相关文章

随机推荐

  • iOS:SDWebImageManager 不缓存图像

    我正在使用创建幻灯片UIImageView 并且图像链接位于数组中 所以当我这样做时 我了解到SDWebImageManager让我们只点击 URL 一次 然后它就会缓存图像以供以后使用 但我在应用程序中监视的是 我相信第一个图像已被缓存
  • 获取变量或参数的名称[重复]

    这个问题在这里已经有答案了 我想获取变量或参数的名称 例如 如果我有 var myInput input var nameOfVar GETNAME myInput gt nameOfVar should be myInput void t
  • Sqlldr 接受 1 种日期格式

    我有一个动态生成控制文件的sql脚本文件 它接受日期格式为 mm dd yyyy 的日期字段 sqlldr 正在从 csv 文件加载日期 但它也接受日期格式 例如 mm dd yyyy 或 mm dd yyyy 我如何让它只接受 MM DD
  • 为什么我的 Java try...catch 出现错误?

    我开始自学更多有关 Java 错误处理的知识 这是我的第一个程序 我尝试查看特定错误而不是使用catch Exception e 作为一个通用的包罗万象的catch 我正在删除一个文件并返回一条消息 表明该文件已成功删除或删除失败 如果删除
  • 大端和小端值是否可移植?

    你好 我在小端和大端有一个小问题 我知道这个问题已经问过n次了 但我无法弄清楚以下几点 让我们取 int i 10 它以二进制存储为00000000 00000000 00000000 00001010在堆栈部分如下 00000000 00
  • GBoard 键盘 GIF 贴纸集成

    我正在努力支持GBoard在我的应用程序中 我希望用户能够从 GBoard 中选择 GIF 我的onCommitContent看起来像这样 Override public void onCommitContent InputContentI
  • raphael.js - 将饼图转换为圆环图

    我正在尝试使用位于此处的 raphael js 示例 http raphaeljs com pie html 但我想将饼图转换为甜甜圈图 所有切片中间有一个洞 目前 每个切片都是使用以下代码创建的 function sector cx cy
  • knitr:块中的代码意外地被包装

    在使用 knit2pdf 和 LaTeX 的投影仪演示中 我有时 发现块中的代码被包装 即使我已经设置了tidy FALSE全球 例如 这个块 item Fit this using func glm lt
  • 保存到 CSV 时日期信息消失

    我试图从互联网上提取一些数据 然后将其导出到 CSV 文件 但我丢失了 CSV 文件中的日期信息 我不明白为什么 我是 R 新手 所以请保持简单的回答 这是我的代码 Library quantmod getSymbols SPY from
  • PHPUnit 测试双打

    我开始使用 PHPUnit 来测试我的代码 但我在理解双重测试方面遇到一些问题 我尝试存根类方法 b 以在从另一个方法调用时返回 true 而不是通常的行为 false 我有这样的代码 class MyClass function a re
  • 创建后数组大小发生变化

    谁能解释一下这里发生了什么 我的印象是 数组的大小一旦创建和声明就无法更改 public class ArrayManipulation public static void main String args int a 1 2 3 new
  • 解析 TO 标头中符合 RFC 822 的地址

    我想使用 preg match all 解析电子邮件地址列表 如 TO 标头中的列表 以获取用户名 如果存在 和电子邮件 与 Pear 中的 mailparse rfc822 parse addresses 或 Mail RFC822 pa
  • 返回 python 中最常出现的前 n 个字符及其各自的计数

    如何返回前 n 个最常出现的字符及其各自的计数 例如 aaaaaabbbbcccc 2应该返回 a 6 b 4 在Python中 我试过这个 def top chars input n list1 list input list3 list
  • 将重复参数传递给 Numpy 向量化函数的最佳方法

    所以 继续我和 TheBlackCat 的讨论这个答案 我想知道将参数传递给 Numpy 向量化函数的最佳方法 所讨论的函数定义如下 vect dist funct np vectorize lambda p1 p2 vincenty p1
  • 在jquery中向上/向下移动

    我有 5 个跨度 我试图在 jquery 中将它们向上 向下移动 交换位置 a href Up a a href Down a span Test1 span br span Test2 span br span Test3 span br
  • Fortran 2003 中参数化派生类型的问题

    我正在自学 Fortran 2003 以便将其用于我目前正在进行的一个研究项目 我已经习惯了 Fortran 90 但这个项目需要使用参数化类型 所以我要转向 2003 我正在关注这个网站的描述了如何定义参数化类型 并根据网站的示例编写了一
  • 处理 Google Play 服务更新消息

    我在我的应用程序中使用 googleservices 版本 8 3 但是 当我在旧设备 LG II Optimus 上下载应用程序时 它向我显示以下消息 除非您更新 Google Play 否则此应用程序将无法运行 服务 我接受并更新了谷歌
  • 使用 powershell 从 HTML 网站抓取图像链接

    我想批量下载一些图片库 这些图像是免费提供的 无需任何许可 我一生都无法让它发挥作用 这是我到目前为止所拥有的 pattern 吐出的是整个 HTML 行 而不仅仅是图像链接 有什么可以给我的指点吗 出于测试目的 该循环设置为仅运行一次 循
  • Oracle 透明数据加密未解密访问

    我可以按照以下所有陈述都成立的方式设置 Oracle 数据库吗 a 某些列 可能是所有列 都已加密 因此对数据库文件的直接文件访问将不允许攻击者检索任何记录 b 加密列对于授权用户透明地解密 其中授权发生 例如通过拥有一定的角色或特权 c
  • 重载一元运算符& 有哪些合理的理由?

    好吧 我已经受到启发去做一些头部冲孔 好像超载了operator 导致不小的疼痛 存在哪些合法的超载情况 不能说我曾经这样做过 我似乎记得类似智能指针类的东西 它覆盖了operator 因为它想要返回所包含指针的地址而不是智能指针对象的地址