Описание тега shared-ptr

Класс интеллектуального указателя с подсчетом ссылок, реализующий совместное владение

А shared_ptr- это ненавязчивый интеллектуальный указатель, который управляет владением общим ресурсом. Множественныйshared_ptr объекты могут совместно владеть одним и тем же ресурсом, который будет автоматически уничтожен, когда не останется "непустых" shared_ptr относящиеся к нему объекты.

Обычно используются различные версии и реализации: boost::shared_ptr (оригинал), std::shared_ptr (входит в стандарт C++11) и std::tr1::shared_ptr (из отчета TR1 о расширениях библиотеки отсутствуют некоторые функции, такие как псевдонимы).

Связанный шаблон класса weak_ptr предназначен для использования с shared_ptr и представляет собой не принадлежащую ссылку на ресурс, которым управляет shared_ptr. Это полезно, чтобы избежать циклических ссылок. Аweak_ptr также может использоваться в качестве "ссылки для отслеживания" и преобразовываться в shared_ptr временно принять долевое владение, когда это необходимо.