6

ある共有ポインタを別の共有ポインタに割り当てると、後者によって管理されているメモリが解放されますか? させて

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.
4

1 に答える 1