ある共有ポインタを別の共有ポインタに割り当てると、後者によって管理されているメモリが解放されますか? させて
typedef shared_ptr<char> char_ptr_t;
char_ptr_t pA(new char('A'));
char_ptr_t pB(new char('B'));
さて、以下のステートメントはのメモリを解放します'A'
か?
/*1*/ pA = pB;
または、明示的に解放する必要がありますか:
/*2*/ pA.reset();
/*3*/ pA = pB;
そして、次のコードは同じことを達成するために有効ですか?
/*4*/ pA.reset(pB); //<-- is this valid? Not compiling in MSVC++ 2010, though the standard seems to allow it.