[英]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::move
或std::swap
但這些都不對。
bar = std::make_shared<int>();
是一種方式,特別是如果你想保留賦值運算符的易處理性。
您可以使用reset
:
bar.reset(new int());
這將delete
當前內容(如果有)並將內部指針設置為new
表達式返回的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.