簡體   English   中英

分配給std :: shared_ptr成員變量

[英]Assigning to a std::shared_ptr member variable

我有一個類foo ,其成員bar的類型為std::shared_ptr<int>

class foo
{
    std::shared_ptr<int> bar;
    /*other stuff here*/
};

在那個類中,我想為bar分配一個new int 但我不能寫bar = new int(); 因為指針沒有公共賦值運算符。

應該怎么辦呢? 我可以std::movestd::swap但這些都不對。

bar = std::make_shared<int>(); 是一種方式,特別是如果你想保留賦值運算符的易處理性。

您可以使用reset

bar.reset(new int());

這將delete當前內容(如果有)並將內部指針設置為new表達式返回的內容。

暫無
暫無

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

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