什麼是 C++ 中的複製和交換習語?
分配包括兩個步驟,分別是消除物件舊狀態和為物件構建新狀態。解構函式用於第一步驟,複製建構函式執行第二步驟。這兩者都易於實現。但是,當過載賦值運算子時,實現起來可能會非常困難。複製和交換習語是同一個問題的解決方案。
這個習語使用複製建構函式構建資料的本地複製。然後它使用 swap 函式用新資料交換舊資料。接著使用解構函式析構臨時複製。最後我們只有新資料的一個複製。
所以,複製和交換習語需要三樣東西——複製建構函式、解構函式和 swap 函式。swap 函式是一個非丟擲函式,交換類的兩個物件,即成員。注意——你不應該使用 std::swap 函式,因為它在內部使用複製建構函式和賦值運算子來實現相同的功能。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP