同じオブジェクトへのポインタを格納する2つのコンテナがあるとします。
std::list<Foo*> fooList;
std::vector<Foo*> fooVec;
そのメソッドが次の場合、これらのコンテナの1つからオブジェクトを1つ経由で削除するとします。
std::vector<Foo*>::iterator itr =
std::find( fooVec.begin(), fooVec.end(), pToObj );
fooVec.erase( itr );
CppReferenceは、これがオブジェクトのデストラクタを呼び出すと言っています。これは、のオブジェクトへのポインタfooList
がダングリングポインタであることを意味しますか?
参照カウントポインタは使用したくない。この問題はどのように処理できますか?