C++ 中重载运算符->

2023-12-14

我有一个智能指针类,我想重载operator->;提供它是为了方便,这样我就可以直接访问智能指针中包含的类的成员。

我正在研究 Boost 在其中实现该运算符的方式shared_ptr模板。我注意到他们添加了一个断言,在返回指针之前检查指针是否确实为非空。目前,我的运算符返回指针而不检查它是否为空(本质上,空指针在我当前的实现中是未定义的行为)。我也应该添加这个断言吗?

(还有,这个操作员怎么称呼?我在网上找不到这个。)


由你决定。您可以简单地记录将其与空指针一起使用是未定义的并且不执行任何操作,您可以断言,您可以抛出异常。没有正确的答案。就我个人而言,我可能会抛出异常。

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

C++ 中重载运算符-> 的相关文章

随机推荐

  • Python - 为什么在类中使用“self”?

    这两个类有何不同 class A x 3 class B def init self self x 3 有什么显着差异吗 A x is a 类变量 B s self x is an 实例变量 i e A s x在实例之间共享 通过像列表这样
  • 正确设置动态下拉菜单的回调

    我正在尝试创建一个 Dash 仪表板 其中一个框中的下拉选项取决于之前的下拉选择 该数据由两个字典组成 每个字典有两个键 每个键都包含一个带有几列的数据框 确切数据 from jupyter dash import JupyterDash
  • 如何创建一个胖罐子?

    有了SpringBoot 你就拥有了 SpringBootApplication注解 但是与简洁的 Java Spark 框架等效的是什么呢 IntelliJ 创建了一个 Maven 项目 我添加了 Spark 依赖项 但运行安装目标时 我
  • 如何为结构的可变引用中的字段交换新值?

    我有一个带有字段的结构 struct A field SomeType Given a mut A 我怎样才能移动的值field并交换一个新值 fn foo a mut A let mut my local var a field a fi
  • php 中 var-export 函数的反义词是什么?

    我通过 将变量导出到文本区域变量导出 schools true 这样用户就可以编辑它 然后我想用所做的更改来 更新 变量 更新是通过 POST 方法接收的 我有一些text我想要成为变量 我怎样才能做到这一点 我现在所做的是在 php 文件
  • 如何在 CultureInfo(c#) 中显示尼日利亚奈拉符号

    我想显示带有尼日利亚货币符号的金额 即 N 带有双删除线 我已经尝试过 ff 段代码 它只显示带有 N 的金额 而不是带有正确的符号 N 带有双删除线 IFormatProvider currencyFormat new System Gl
  • Outlook REST API - getFolders 不返回所有文件夹

    我刚刚开始使用 Outlook REST API 我的基准是使用node outlook的教程 第一个任务是检索我的邮件帐户中的所有文件夹 所以我发出这个 REST 请求 GET https outlook office com api v
  • UTF-8 和 os.listdir()

    我在处理包含 字符的文件时遇到了一些麻烦 即 xC8 x99采用 UTF 8 拉丁文小写字母 S 下面带逗号 我正在创建一个 txt文件并尝试将其恢复os listdir 很遗憾 os listdir 将其返回为s xCC xA6 s 下面
  • 何时使用 toString() 方法

    这听起来可能非常基本 有人可以解释一下toString 方法以及何时有效使用该方法 在谷歌上进行了搜索 但找不到任何好的资源 在大多数语言中 toString或者等效的方法只是保证一个对象可以用文本表示 这对于日志记录 调试或任何其他需要能
  • Android:FragmentTabHost - java.lang.IllegalArgumentException:您必须指定一种创建选项卡内容的方法

    我在课堂上有以下内容用于创建FragmentTabHost public class TabsActivity extends FragmentActivity private FragmentTabHost mTabHost Overri
  • 双向重复测量ANOVA python函数

    预先感谢您的任何答复 我想在 python 中进行 2 路重复测量方差分析 其中一个 IV 有 5 个级别 其他 4 个级别 有一个 DV 我尝试查看 scipy 文档和一些在线博客 但似乎找不到任何东西 您可以使用rm anovaPino
  • 我希望能够通过网络从 BIOS 提取错误日志

    我希望能够通过网络从 BIOS 提取错误日志 查看 MSDN 中的 Win32 BIOS 我没有看到任何定义错误日志的内容 很乐意在 C 中使用 WMI 来完成此操作 但我愿意接受建议 是否可以 Win32 BIOS 没有包含 BIOS 错
  • 为什么在 PHP 中使用 ORM?

    最近开始学习ORM 突然想到一个问题 PHP 应用程序主要使用 MySql 和 Sqlite 几乎所有 PHP 服务器都安装了它们 那么是否值得在 PHP 中使用 ORM 来独立于数据库呢 性能怎么样 数据库独立性并不是使用 ORM 的主要
  • Jquery 自动完成 - 无结果消息

    我希望自动完成在下拉列表中显示 无结果 如果没有找到结果 则列出 我的情况就像 JQuery 默认示例 function var availableTags ActionScript AppleScript Asp BASIC C C Cl
  • R Shiny:Vtree 图未使用 Shiny 渲染

    如何在闪亮中使用 vtree 包 尝试从服务器端渲染时 没有出现所需的绘图 我的代码 library shiny library vtree Define UI ui lt pageWithSidebar App title headerP
  • ColdFusion、MS Word 文档和希腊字符

    我正在尝试从数据库动态构建 Word 文档 我使用 CFC 进行查询处理 我的努力是成功的 但我只能复制英语文档 但是 我的应用程序使用希腊语 当我尝试构建包含希腊字符的文档时 输出如下所示 我尝试了很多事情但没有任何效果 这里奇怪的是 当
  • 以天:小时:分钟:秒格式计算 SQL 中的 DateDiff

    我目前正在使用 SQL 脚本来计算两个日期之间的差异 这将为我提供 DD HH MI SEC 格式的结果 例子 日期 1 2012 年 7 月 30 日 下午 4 00 日期 2 2012 年 5 月 4 日上午 10 31 结果应该是 8
  • 当 puppet-rspec 存在时,为什么我会收到“类不存在”?

    我设置了一个新的木偶demo模块具有以下内容Gemfile当我运行一个简单的 puppet rspec 测试时 它按预期工作 Gemfile source https rubygems org if puppetversion ENV PU
  • 如何通过纯javascript中的每次点击来选择循环中下一个特定数量的元素?

    我试图为每次单击 下一步 按钮选择接下来的 3 个项目 nextElementSiblings 项目长度为 14 直到项目 12 为止它都工作正常 在项目 12 之后 它检查接下来的 3 个项目 但循环中只剩下 2 个项目 十三个 13 十
  • C++ 中重载运算符->

    我有一个智能指针类 我想重载operator gt 提供它是为了方便 这样我就可以直接访问智能指针中包含的类的成员 我正在研究 Boost 在其中实现该运算符的方式shared ptr模板 我注意到他们添加了一个断言 在返回指针之前检查指针