C++ shared_ptr - attach to a new raw pointer?

2019-07-23 17:03发布

问题:

I think I'm missing something simple here. I'm using Boost's shared_ptr.

shared_ptr<Foo> pA(new Foo()); 
shared_ptr<Foo> pB(new Foo()); 

Now, I want to switch pB so it contains the contents of pA, decrementing the ref count of pB. How can I do this?

回答1:

It's all done automatically:

pB = pA;  // pB ref count is decrement (in this case causing the value to be released)
          // pB is then made to point at the same value as pA
          // Thus incrementing the refCount.