[英]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.