首頁  >  文章  >  後端開發  >  如何從基底類別指標深層複製衍生類別?

如何從基底類別指標深層複製衍生類別?

DDD
DDD原創
2024-10-25 23:09:28637瀏覽

 How to Deep Copy Derived Classes from Base Class Pointers?

從基類指標建立衍生類別的副本

考慮從指標建立衍生類別實例的深層副本的挑戰它的多態性基類。這可能很棘手,因為在 if 語句中依賴多個類型 ID 或動態轉換可能會變得乏味並引入效能影響。

首選方法包括在基底類別中合併虛擬方法,稱為clone()或複製()。此方法應傳回一個指向新建立的衍生類別副本的指標。透過在每個衍生類別中實作此方法,複製過程將獨立於特定的衍生類別類型。

或者,為了避免程式碼重複,可以採用奇怪的重複模板模式 (CRTP) 習慣用法。使用模板,可以建立一個輔助類,將複製操作委託給衍生類別建構函式。

使用 Clone() 方法實作:

使用 CRTP 慣用法實作:

使用 CRTP 慣用法實作:

以上是如何從基底類別指標深層複製衍生類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn