簡體   English   中英

不擁有 unique_ptr

[英]Non ownership of unique_ptr

我有一個球隊向量,主隊和客隊被創建為unique_ptr ,因為match應該擁有兩支球隊,並在Match被摧毀時被摧毀。

我已經閱讀了許多文章並觀看了許多關於shared_ptrunique_ptr的討論,關鍵似乎是所有權

我將兩個團隊都放在一個vector中:

std::vector<std::unique_ptr<Team> > m_pTeams{}; // Match.hpp

像這樣引用兩者的“幫助”變量是否可以接受?

const Team* m_pHome{}; // Match.hpp
const Team* m_pAway{}; // Match.hpp

m_pHome = m_pTeams[0].get(); // CreateTeams() within Match.cpp
m_pAway = m_pTeams[1].get(); // CreateTeams() within Match.cpp

擁有輔助變量並沒有錯。 您必須小心對象的生命周期。

假設Match對象可以返回Team對象 - 要考慮的一個問題是返回引用而不是指針。 這將防止在Match之外創建和刪除Team的任何濫用。

否則,您的代碼非常好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM