C++ 中的複製和交換慣用技巧是什麼?


賦值包含 2 個步驟,分解物件的舊狀態併為其構建一個新狀態。解構函式用於執行第一步,而一個複製建構函式執行第二步。實現這兩個步驟非常簡單。但在過載賦值運算子時,這會變得非常困難。複製和交換慣用技巧就是針對這一問題提出的解決方案。

此慣用技巧使用複製建構函式構建資料的本地副本。然後使用 swap 函式用新資料交換舊資料。然後使用解構函式對臨時副本進行析構。最後我們只剩下了新資料的副本。

因此,複製和交換慣用技巧需要三樣東西 — 一個複製建構函式、一個解構函式和一個 swap 函式。swap 函式是一個非丟擲函式,用於交換類的兩個物件,即成員。注意 — 不得使用 std::swap 函式,因為其在內部使用複製建構函式和賦值運算子來實現同一目標。


更新於: 2020 年 6 月 23 日

211 次瀏覽

職業精彩啟動

完成課程即可獲得認證

開始
廣告
© . All rights reserved.