Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否boost::shared_ptr<int> ptr制作副本
boost::shared_ptr<int> ptr
*ptr.get() = 5;
假设refcount是3,在上面的行之后它会留下3吗?或者会发生什么?会分配新对象吗?
refcount
3
不,它不会复制,因为这样该对象将不再被共享。
此外,无需显式调用get():
get()
*ptr = 5;
这对引用计数没有影响。
(创建一个新的共享对象ptr = boost::make_shared<int>(5):)
ptr = boost::make_shared<int>(5)