Получаем ли мы несколько копий указателей, но члены данных по-прежнему используются совместно?Что происходит, когда вы копируете вектор <boost :: share_ptr> другому вектору
boost::shared_ptr<string> a1(new string("Hello"));
vector<boost::shared_ptr<string> > a;
a.push_back(a1);
vector<boost::shared_ptr<string> > b;
b = a;
cout<<a[0]->c_str()<<b[0]->c_str()<<endl;
a1->append(" World");
cout<<a[0]->c_str()<<b[0]->c_str()<<endl;
Выход: HelloHello Hello World WorldHello
Если бы мы этого не сделали, какова была бы точка класса shared_ptr? – 2010-05-19 15:28:23