傳遞共享指標:透過引用或按值
將shared_ptr(來自boost或C 11 STL)傳遞給函數時,選擇透過const 引用(void foo(const shared_ptr
傳統上,它人們相信透過引用傳遞會更快,因為它避免了不必要的複製操作。然而,正如 C and Beyond 2011 專家(Scott、Andrei 和 Herb)所討論的那樣,情況已不再如此。
應該按值傳遞還是按引用傳遞?
除非明確需要共享物件的所有權(例如在資料結構或執行緒之間),否則沒有令人信服的理由按值傳遞shared_ptr。首選透過 const 引用傳遞,原因如下:
何時按值傳遞
建議按值傳遞shared_ptr的唯一時間是目的是將物件的所有權轉移給函數。當函數需要負責管理物件的生命週期時,通常會出現這種情況。
其他注意事項
為了獲得最佳效能,重要的是要考慮shared_ptr是否可以進行行動最佳化。正如 Scott Meyers 所解釋的,行動最佳化可以消除不必要的複製操作。然而,這種優化僅在某些版本的 C 中可用。
以上是我應該按值還是按引用傳遞'shared_ptr”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!