为什么我的本地对象被破坏了两次?

2024-03-20

我有一个返回本地对象的函数:

class AT
{
public:
    AT() { cout<<"construct"<<endl; }

    AT(const AT& at) { cout<<"copy"<<endl; }

    ~AT() { cout<<"destroy"<<endl; }
};

AT funcAt()
{
    AT tmp;
    return tmp;
}
...
funcAt();

输出是:

construct
copy
destroy
destroy

我想只有“tmp”的构造和销毁,那么为什么会有复制和另一个销毁呢?复制的对象在哪里?


让我们具体说明一下:

AT funcAt()
{
    AT tmp;           [1]
    return tmp;       [2]
}                     [3]
...
funcAt();             [4]

[1]在tmp中创建AT对象
[2] 将 tmp 复制到返回值中
[3] 摧毁tmp
[4] 销毁返回值,因为它没有被使用

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

为什么我的本地对象被破坏了两次? 的相关文章

  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 按成员序列化

    我已经实现了template
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐

  • 无法编辑 xml 文件但可以编辑 .java?

    嗨 我有一个奇怪的问题 我正在开发一个已导入到 eclipse 中的现有项目 我可以查看所有文件 没有指示任何错误 我可以运行该项目 它将显示在模拟器上 当我尝试更改 xml 文件中的代码时 事实上 所有 xml 文件都没有输入任何内容 没
  • 如何正确引用Strings.xml文件,android

    我的 string xml 有一个字符串
  • Dataflow 作业完成时通知 Google PubSub

    有没有办法在 Google Dataflow 作业完成后将消息发布到 Google Pubsub 上 我们需要通知依赖系统传入数据的处理已完成 将数据写入到接收器后 Dataflow 如何发布 EDIT 我们希望在管道完成写入 GCS 后发
  • Mac OS Big Sur - Homebrew Apache - 48)地址已在使用中:AH00072:make_sock:无法绑定到地址 0.0.0.0:8080

    我在 Mac OS Big Sur 上遇到 Apache 问题 操作系统更新后 Apache 使用 Brew 不再工作 所以我决定卸载httpd公式 然后测试了 Apache 的预安装版本是否可以正常工作 所以我已经停止了预装的Apache
  • (jQuery 插件)在多项选择测验中拖放答案

    我正在制作一个网页 用户必须在测验中连接两个列表中的元素 例如 假设有一个测验问题 其中有两个列表 一个包含国家 地区 另一个包含首都 用户必须将首都连接到正确的国家 地区 优选地 应该有一种方式让用户将元素从第二列表拖到第一列表的元素旁边
  • 使用 FCM 时的通知跟踪

    当我在不使用 Firebase 服务仪表板的情况下发送推送通知时 是否可以跟踪通知状态 无论是用户打开还是取消 我在用Advanced REST client我想在将有效负载发送到时记录有关通知状态的数据https fcm googleap
  • 如何使用 Parse 找到当前用户位置附近的用户?

    我的应用程序需要找到用户的当前位置 我已经完成了 然后它需要找到当前用户位置附近的其他用户 我正在为此使用 Parse 到目前为止 这就是我必须获取用户当前位置的方法 并且到目前为止它正在工作 不过 我不明白如何找到当前用户位置附近的其他用
  • 使用 jQuery 重命名 jQuery UI 选项卡

    我有 3 个标签 div ul li a href tabs 1 Tab1 a li li a href tabs 2 Tab2 a li li a href tabs 3 Tab3 a li ul div div div div div
  • Visual Studio 9 解决方案中的项目数量是否会影响解决方案加载和生成时间?

    我对解决方案加载时间和构建时间特别感兴趣 更少的解决方案是否意味着更好的性能 请注意 我是not指的是所构建应用程序的性能 处理较少数量的项目时 加载时间和构建时间是否更高效 作为指导 我们的 Visual Studio 解决方案中有 50
  • 具有命名约定的可见性自动绑定

    我真的很喜欢 Caliburn 和命名约定绑定 并且很惊讶 可见性的约束方式与使用 CanNAME 约定保护操作的方式不同 据我所知 BooleanToVisibilityConverter 仅在 Caliburn 中显式使用 Bindin
  • mysql concat_ws 没有重复项

    我试图将几个字段连接成一个字段 但只在结果字符串中保留唯一值 Example title orig title fr title de title it KANDAHAR KANDAHAR REISE NACH KANDAHAR VIAGG
  • Angular2:如何从node_modules导入样式表?

    问题 在我的 Angular2 4 0 应用程序中 如何从 node modules 中的模块导入样式表 css 我有一个模块位于此处 node modules swimlane ngx datatable 我想导入这个样式表 node m
  • iOS 使用 UIActivityViewController 将图像共享到 LinkedIn

    我正在尝试将图像共享给我的设备中安装的所有可能的应用程序 但不幸的是 我无法将图像成功发布到 LinkedIn 已安装并以经过验证的用户身份登录 LinkedIn 显示在 UIActivityViewController 中的共享操作列表中
  • Azure 存储 SAS 身份验证失败

    我有一个私有的 azure 存储容器 并且正在尝试 azure 存储 SAS 以便我可以上传和下载文件 我能够生成签名 但它总是向我抛出身份验证失败错误 AuthenticationFailed服务器无法验证请求 确保授权标头的值格式正确
  • python 类型提示不会为错误类型生成错误

    我最近正在检查类型提示 在阅读了一些理论后 我尝试了一个简单的示例 如下所示 def myfun num1 int num2 int gt int return str num1 num2 a myfun 1 abc print a out
  • 在 PHP 中输​​出带有换行符的文本文件

    我正在尝试打开一个文本文件并使用下面的代码输出其内容 该文本文件包含换行符 但当我回显该文件时 其未格式化 我该如何解决 Thanks fh fopen filename txt r pageText fread fh 25000 echo
  • 用双斜杠替换单斜杠,php

    如何用双斜杠替换单斜杠 我有这样的文字 data folder and i need get data folder 我尝试替换 但出现错误 data str replace data 你说的是反斜杠还是普通斜杠 无论如何 请检查下面的代码
  • Python 3 类型注释和子类

    如何在 Python 类型注释中引用 任何子类化父类的对象 例子 FooBase是一个抽象基类 其中Foo1 Foo2等被子类化 我希望该函数接受任何后代FooBase 这会吗 def do something self bar FooBa
  • 使用seaborn时如何从箱线图中获取统计值?

    我用seaborn制作了一个箱线图 我想获得一些统计值 例如最小值 第一四分位数 中位数 第三四分位数 最大值以及异常值 是否有任何函数或属性可以通过 seaborn boxplot 直接收集这些值 或者我应该通过其他包或手动计算这些 使用
  • 为什么我的本地对象被破坏了两次?

    我有一个返回本地对象的函数 class AT public AT cout lt lt construct lt