從基類指標建立衍生類別的副本
考慮從指標建立衍生類別實例的深層副本的挑戰它的多態性基類。這可能很棘手,因為在 if 語句中依賴多個類型 ID 或動態轉換可能會變得乏味並引入效能影響。
首選方法包括在基底類別中合併虛擬方法,稱為clone()或複製()。此方法應傳回一個指向新建立的衍生類別副本的指標。透過在每個衍生類別中實作此方法,複製過程將獨立於特定的衍生類別類型。
或者,為了避免程式碼重複,可以採用奇怪的重複模板模式 (CRTP) 習慣用法。使用模板,可以建立一個輔助類,將複製操作委託給衍生類別建構函式。
使用 Clone() 方法實作:
使用 CRTP 慣用法實作:
使用 CRTP 慣用法實作:以上是如何從基底類別指標深層複製衍生類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!