- C++相談室 part120 [転載禁止]©2ch.net
164 :デフォルトの名無しさん[sage]:2015/10/29(木) 17:03:20.53 ID:90AKzuDc - >>140-142
レス遅くなりました、すいません >>139のブログで分からなかったのはコメントの以下の部分なのですが、 --------------------------------------- struct Object { std::vector<std::string> vec; }; のような Object に対しては,shared_ptr からの参照が破棄された時点で~Object() が呼ばれて, vec によって確保されたメモリは解放される --------------------------------------- vecのメモリが解放されるのは、vectorが内部データをnewによりObjectのヒープとは別のヒープ上に持つからなんですね。 逆に、vectorみたいなコンテナじゃなくて、配列みたいなメンバの場合、 ~Object() が呼ばれると破棄はされるもののメモリは解放されないということですね。 自己解決のつもりですが、以上の理解で正しいでしょうか?
|