尋找一些意見,因爲它不清楚在閱讀C + + 11文檔。unique_ptr應該用於類成員指針嗎?
回答
絕對。這照顧了你的rule of three。
有一個'unique_ptr'數據成員意味着你自動獲得一個正確的默認析構函數,但是默認的複製構造和複製分配變得不可能。 – jogojapan
@jogojapan:那麼,你可以免費移動建築並移動任務,所以你不會空手而歸。 ; - ] – ildjarn
@Nikolai:只有在頭中定義了'unique_ptr'的有效載荷類時。大多數情況下,您使用句柄/ pimpl指針的習慣用法是爲了避免必須發佈私有類。在這種情況下,你仍然可以使用'unique_ptr',但是你需要實現默認和複製構造以及線外銷燬,並且複製分配(可能使用copy-swap技巧內聯)。當然,只有'shared_ptr'真正處理三條規則(C++ 11中的五規則),因爲在刪除器上執行了類型擦除,但是具有不同的語義。 –
- 1. 返回指向類成員的指針 - 我應該避免它嗎?
- 2. C++ - 什麼時候應該在類中使用指針成員
- 3. 類的抽象成員應該是指針還是引用?
- 4. 我應該經常檢查nullptr的成員指針嗎?
- 5. 錯誤使用的unique_ptr與成員函數指針
- 6. 類成員函數指針
- 7. 成員指針基類
- 8. 圓形類成員指針?
- 9. std :: unique_ptr和指針指針
- 10. C++指向成員的指針(指向成員的基類)
- 11. 使用另一個類成員的類成員函數指針
- 12. 指向成員模板類的指針
- 13. 指向類成員的指針
- 14. 指向類內成員的指針
- 15. 用指針傳遞類成員
- 16. 在C++類中使用指針成員
- 17. 共用指針作爲類成員
- 18. 使用類的成員函數指針
- 19. 使用get()弱指針unique_ptr
- 20. 我應該使用公共指針嗎?
- 21. 在類成員中正確使用unique_ptr
- 22. 用於重載成員函數的成員函數指針
- 23. C++派生類的劇組成員指針到基類指針
- 24. 使用指針指向基類抽象類的子類成員
- 25. 在添加到unique_ptr之前和之後,指針應該是相同的嗎?
- 26. 我應該使用std :: shared指針傳遞一個指針嗎?
- 27. 作爲類成員的類成員函數指針
- 28. 哪個非共享智能指針用於類成員變量
- 29. 指向成員的指針
- 30. 指向該類的類指針成員:無法解析的外部符號
它絕對可以,但是否使用這個或另一個選擇取決於。它所控制的指針的所有權語義是什麼? –
如果要回答這個問題,需要更多的細節。你想知道它是否可能*?也就是說,如果使'unique_ptr'成員導致一些問題?或者你問這是否是一個好主意?如果是這樣,在什麼情況下? –