• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    如何使用mutable關鍵字

    C++

    方式/步調

    1. 1

      凡是類的獲取函數城市設置const,為了防止當作員變量被點竄

      c2fdfc039245d688bbdcd679aac27d1ed31b2414.jpg
    2. 2

      假設此刻需要統計獲取函數被挪用的次數,需要在獲取函數添加累加計數,可是因為獲取函數被const潤色,無法對當作員變量進行點竄,會導致編譯不經由過程

      d8f9d72a6059252d256a7ad93a9b033b5ab5b9ea.jpg
    3. 3

      這時辰可以對類的當作員變量添加關頭字mutable來解決上一個步調的問題

      58ee3d6d55fbb2fb95b53fcf414a20a44723dc55.jpg
    4. 4

      調試運行的成果如下,添加的當作員變量可以在const函數中被點竄,并利用來進行統計

      d058ccbf6c81800a5261eed3bf3533fa838b4762.jpg
    5. 5

      mutable的另一個比力常用的場景就是多線程情況下的鎖,起首界說私有的當作員變量mutex, 然后在獲取函數中利用該鎖來包管同步性

      0823dd54564e925895b9e1339282d158cdbf4e59.jpg
    6. 6

      可是編譯的過程中,就會報如下所示的錯誤

      d8f9d72a6059252d246a7bd93a9b033b5ab5b9ea.jpg
    7. 7

      那么只要將當作員變量mutex前面添加mutable進行點竄就可以解決

      9f510fb30f2442a75eaa9b78df43ad4bd0130242.jpg
    8. 8

      最后再進行編譯就可以或許經由過程,運行后輸出正常的打印信息

      dcc451da81cb39dbcf83018bde160924aa1830af.jpg
    • 發表于 2019-08-18 21:04
    • 閱讀 ( 524 )
    • 分類:其他類型

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆