6

そのような方法があるとします

void foo(const boost::shared_ptr<Pfoo>& rx)
{
   myvector->push_back(rx);
}

boost::shared_ptr が参照として渡されると、参照カウントが増加しないことを読みました。実際の ptr がスコープを超えた場合、上記のシナリオで何が起こるでしょうか?

4

5 に答える 5

0

smart_ptr は参照として渡されるため、その時点で参照カウントがインクリメントされることはありません。オブジェクトのベクターコピーの場合は挿入されます。したがって、参照はインクリメントされます。

myvector->push_back(rx); //Copy of object is passed.
于 2013-04-12T09:51:53.773 に答える