内置赋值运算符的返回类型是什么?

2023-11-27

我刚刚开始 C++。我对赋值和取消引用运算符的返回类型有点困惑。我正在关注《C++ Primer》这本书。在各种场合,作者都说赋值运算符的返回类型是对左手操作数类型的引用,但后来,他说返回类型是左手操作数的类型。我已经提到了 C++11 Standard Sec。 5.17,其中返回类型被描述为“引用左手操作数的左值”。

同样,我无法弄清楚取消引用是否返回指向的对象或对该对象的引用。

这些陈述等价吗?如果是这样,那又如何呢?


该标准正确定义了赋值运算符的返回类型。 实际上,赋值操作本身并不依赖于返回值——这就是返回类型不容易理解的原因。

返回类型对于链接操作很重要。 考虑以下构造:a = b = c;。这应该等于a = (b = c), i.e. c应分配到b and b into a。将其重写为a.operator=(b.operator=(c))。为了分配到a正确工作的返回类型b.operator=(c)必须引用内部赋值结果(它也可以与复制一起使用,但这只是不必要的开销)。

解引用运算符返回类型取决于您的内部逻辑,以适合您需要的方式定义它。

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

内置赋值运算符的返回类型是什么? 的相关文章

  • 在 Vulkan 中,图形队列系列与当前队列系列分离是否有益?

    据我所知 队列系列可能支持呈现到屏幕但不支持图形 假设我有一个同时支持图形和呈现的队列系列 以及另一个仅支持呈现的队列系列 我应该为两个进程使用第一个队列系列 还是应该将第一个队列系列委托给图形 将后者委托给呈现 或者这两种方法之间没有明显
  • 如何从字符串中提取子字符串直到遇到第二个空格?

    我有一个像这样的字符串 o1 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 如何仅提取 o1 1232 5467 要提取的字符数并不总是相同 因此 我只想提取直到遇到
  • 格式说明符%02x

    我有一个简单的程序 include
  • 关于逻辑/算法的想法以及如何防止线程写入 Sql Server 中的竞争

    我有以下逻辑 public void InQueueTable DataTable Table int incomingRows Table Rows Count if incomingRows gt RowsThreshold async
  • C# 中的 Stack<> 实现

    我最近一直在实现递归目录搜索实现 并且使用堆栈来跟踪路径元素 当我使用 string Join 连接路径元素时 我发现它们被颠倒了 当我调试该方法时 我查看了堆栈 发现堆栈内部数组中的元素本身是相反的 即最近 Push 的元素位于内部数组的
  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • C# 根据当前日期传递日期时间值

    我正在尝试根据 sql server 中的两个日期获取记录 Select from table where CreatedDate between StartDate and EndDate我通过了5 12 2010 and 5 12 20
  • OpenGL:如何检查用户是否支持glGenBuffers()?

    我检查了文档 它说 OpenGL 版本必须至少为 1 5 才能制作glGenBuffers 工作 用户使用的是1 5版本但是函数调用会导致崩溃 这是文档中的错误 还是用户的驱动程序问题 我正在用这个glGenBuffers 对于VBO 我如
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • 如何在多线程应用程序中安全地填充数据并 Refresh() DataGridView?

    我的应用程序有一个 DataGridView 对象和一个 MousePos 类型的列表 MousePos 是一个自定义类 它保存鼠标 X Y 坐标 类型为 Point 和该位置的运行计数 我有一个线程 System Timers Timer
  • Unity3D - 将 UI 对象移动到屏幕中心,同时保持其父子关系

    我有一个 UI 图像 它的父级是 RectTransform 容器 该容器的父级是 UI 面板 而 UI 面板的父级是 Canvas 我希望能够将此 UI 图像移动到屏幕中心 即画布 同时保留父级层次结构 我的目标是将 UI 图像从中心动画
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • Streamwriter 覆盖 txt 文件中的文本

    有没有什么方法可以重新打开流写入器而不创建新的写入对象 因为此时 当调用 WriteOdd 时 streamwriter 正在覆盖在它之前调用的 WriteEven public void WriteEven StreamWriter wr
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • .Net Reactive Extensions Framework (Rx) 是否考虑拓扑顺序?

    Net 反应式扩展框架是否按拓扑顺序传播通知以最大限度地减少更新量 就像 Scala Rx 所做的那样 Net 反应式扩展 Rx 是否可以 https github com lihaoyi scala rx wiki How it Work
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 如果找不到指定的图像文件,显示默认图像的最佳方式?

    我有一个普通的电子商务应用程序 我将 ITEM IMAGE NAME 存储在数据库中 有时经理会拼错图像名称 为了避免 丢失图像 IE 中的红色 X 每次显示产品列表时 我都会检查服务器中是否有与该产品相关的图像 如果该文件不存在 我会将其

随机推荐

  • 生成 PHP 接口

    有没有从现有类生成 php 接口的工具 如果有像 Netbeans 这样的自动 getter setter 创建工具 但对于接口来说 那就太好了 对于编程用途有InterfaceDistiller它允许您从现有类派生接口 如下所示 dist
  • 存储库模式逐步解释[关闭]

    Closed 这个问题是无关 目前不接受答案 有人可以向我解释 NET 中的存储库模式吗 逐步给出一个非常简单的示例或演示 我知道这是一个很常见的问题 但到目前为止我还没有找到满意的答案 作为总结 我将描述存储库模式的更广泛影响 它允许您的
  • C# 中释放 COM 对象

    我知道这个问题之前已经讨论过 但我找不到满意的答案 我有一个电子邮件文件 msg 我像下面一样打开它 然后调用 Display oApp new Microsoft Office Interop Outlook Application ma
  • 向 SQL Server Reporting Services 报告添加交替行颜色

    如何在 SQL Server Reporting Services 报表中对交替行进行着色 Edit 下面列出了很多很好的答案 来自quick and simple to 复杂而全面 唉 我只能选一个 转到表行的背景颜色属性并选择 表达式
  • 在 PySpark 中的值前面添加零

    我有一个数据框df val1 val2 val3 271 70 151 213 1 379 213 3 90 213 6 288 20 55 165 我想将此数据框转换为 val1 val2 val3 271 70 0151 213 01
  • “new”语句后的大括号有什么作用?

    我在看这个例子并想知道第一行的作用 private SiteStreamsListener listener new SiteStreamsListener 看起来您可以通过这种方式声明附加方法或重写方法 例如 我可以执行以下操作吗 Arr
  • 将导入的 scss 文件命名为 .scss 或 .css.scss

    我试图让 livereload 使用 Rails 3 2 我遇到了这个问题 其中提到不使用 css scss 命名导入的 sass 部分 Rails 将 livereload 与 Asset Pipeline 结合使用 导入的 SCSS 文
  • C++ Array vs Vector 性能测试说明 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 为了量化 C 类数组和 C 中向量的性能差异 我编写了这个小程序 https githu
  • Android xml 文件突然显示 java 代码。 [复制]

    这个问题在这里已经有答案了 我昨晚刚刚更改了 build gradle 文件调试部分中的基本 url 因为我的基本 url 已更改 一切都很好 直到今天我启动我的电脑和 android studio 并看到我所有的 xml 文件都有 jav
  • Firebase Cloud Firestore 触发器 context.auth 始终为 null [重复]

    这个问题在这里已经有答案了 我正在使用 Firebase 和 Cloud Firestore 构建一个群组应用程序 用户应该能够在其中创建群组并向其中添加成员 当用户创建组时 我希望云触发器在创建组后将该用户添加到组的成员列表中 触发器看起
  • Android 支持的语言/区域设置列表是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想知道如何为不同语言的文件夹命名 在哪里可以找到 Android 支持的语言列表 自 Android 5 1 起更新的列表 af Afrikaan
  • 无法更改 pty/N 上的终端大小(适用于 ttyN)

    我使用 next 来更改终端大小 rc ioctl fd TIOCSWINSZ ws 当我在 Linux 文本终端下运行这个 通过 Alt Ctrl F1 切换 时 结果是我期望看到的 我的整个输入和输出都在 ioctl 系统调用给出的范围
  • 如何将导航抽屉放在工具栏下方?

    我的导航抽屉位于工具栏上方 我还添加了一些 xml 代码 请帮助我 这是我的 Activity xml
  • 替换 BLOB 列中的文本

    在我们的一张桌子上有一个HUGEBLOB列 列名称是DYNAMIC DATA 其中包含 XML 数据 我需要做的是更新此 BLOB 中文本的特定部分 我尝试过这个查询 UPDATE ape1 item version SET DYNAMIC
  • 为什么 NetBeans 在 OS X 上运行我的程序,但不将其构建到 JAR 中?

    tl dr 我缺少什么依赖项 允许 NetBeans 在内部正常运行 OS X 集成程序 但无法清理并将其构建为 JAR 我正在尝试制作一个集成到 OS X 中的 Java 程序 但我希望也将其发布到 Windows 和 Linux 上 为
  • 如何从 Maven Reactor 构建中排除模块?

    我们有一个 Maven 2 项目 其中有很多模块 例子
  • 任务“:app:validateSigningRelease”执行失败。颤振误差

    我想发布我的应用程序 但遇到了这个问题 FAILURE Build failed with an exception What went wrong Execution failed for task app validateSigning
  • NSPredicate 未执行

    这很有趣 在我的应用程序中 我在数据库中创建了数千个条目 在另一个线程中 我使用 MagicalRecord 一切似乎都工作正常 从背景 前景 上下文的角度来看 当我在主线程中尝试获取 刚刚插入 的数据时 我发现了以下行为 NSArray
  • 从 edittext 中选定的文本中删除样式

    我的应用程序应该允许用户在 Edittext 中设置输入或选定文本的样式 其中一些样式有下划线 删除线 粗体和斜体 它们很容易添加 但我不知道如何将它们移除 and 我如何确定该样式是否已添加到选定的文本 添加样式的代码 Spannable
  • 内置赋值运算符的返回类型是什么?

    我刚刚开始 C 我对赋值和取消引用运算符的返回类型有点困惑 我正在关注 C Primer 这本书 在各种场合 作者都说赋值运算符的返回类型是对左手操作数类型的引用 但后来 他说返回类型是左手操作数的类型 我已经提到了 C 11 Standa