shared_ptr に関して明確にしたいだけです
int main(){
typedef std::tr1::shared_ptr<Foo> _foo;
_foo obja(new Foo());
Foo *objb = obja.get();
// delete objb; //deleting objb will throw double free or corruption
return 0;
}
上記のコードで、 objbが削除または解放されていない場合、メモリ リークは発生しますか? 最終的に、objaは範囲外になり、それ自体を解放します。objbとobjaは同じインスタンスを指しているので、 objbを解放する必要がないということですか?
上記はこれと同じですか:
Foo *obja = new Foo();
Foo *objb;
objb = obja;
delete obja;