关于std::atomic<UDT>的问题

Hui Liu-MSFT 48,711 信誉分 Microsoft 外部员工
2024-05-30T06:22:40.3266667+00:00

为什么最后两行的输出是 2?206963-rjsixrn-ep2j8dqj3w.pngNote:此问题总结整理于:Questions about std::atomic<UDT>

开发人员技术 | C++
开发人员技术 | C++
一种通用的高级编程语言,作为 C 编程语言的扩展而创建,除了用于低级别内存操作的功能外,还具有面向对象、泛型和功能性等特点。
0 个注释 无注释
{count} 票

问题作者接受的答案
  1. 匿名
    2024-05-30T07:30:30.0466667+00:00

    嗨,

    std::atomic<A> b=a;这行代码是将A a赋值给b,然后你执行b.load().add();,这行代码只影响std::atomic<A> b中的a,A a(2)不受影响,而且a.add()也不存在,所以最后两行输出的还是2。

    我建议你阅读这个问题


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

提问者可以将答案标记为“已接受”,版主可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。