2010-05-19 2 views
0

Получаем ли мы несколько копий указателей, но члены данных по-прежнему используются совместно?Что происходит, когда вы копируете вектор <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

+9

Если бы мы этого не сделали, какова была бы точка класса shared_ptr? – 2010-05-19 15:28:23

ответ

0

Да. Но не забудь об этом, попробуй и посмотри.

+0

написал быстрый тест .. и вы правы .. просто хотел поделиться этим, поэтому задал вопрос о SO. :) – SWKK

Смежные вопросы