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

Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
2024-05-30T06:22:40.3266667+00:00

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

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

接受的答案
  1. Jiale Xue - MSFT 46,466 信誉分 Microsoft 供应商
    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 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。