唯一指標(unique_ptr)維護了C 中唯一所有權的原則11.處理時使用唯一的指標作為函數或建構子參數,會出現幾個具有不同的選項
Base(std::unique_ptr<Base> n) : next(std::move(n)) {}
此方法將唯一指標的所有權轉移到函數/物件。指標的內容被移入函數中,操作後原始指標為空。
Base(std::unique_ptr<Base> &n) : next(std::move(n)) {}
允許該函數可以存取並可能聲明唯一指標的所有權。但是,這種行為並不能保證,需要檢查函數的實作以確定其對指標的處理。
Base(std::unique_ptr<Base> const &n);
防止函數宣告唯一指標的所有權。指針可以訪問,但不能儲存或修改。
Base(std::unique_ptr<Base> &&n) : next(std::move(n)) {}
與透過非常量L 值參考傳遞相當,但在傳遞非暫時參數時需要使用std::move 。函數可能會或可能不會聲明所有權,使其難以預測。
移動唯一指針指針,使用 std::move。不允許複製唯一指標:
std::unique_ptr<Base> newPtr(std::move(oldPtr));
以上是我應該如何在 C 中將唯一指標作為函數或建構函數參數傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!