Сырой указатель C ++ и std :: shared_ptr
Я работаю сstd::shared_ptr
и во время моей разработки программного обеспечения я встретил пару
случаев, которые позволяют мне сомневаться в управлении памятью. У меня была сторонняя библиотека, которая
дал мне всегда сырые указатели на функции и в своем коде я преобразовывал их
вstd::shared_ptr
(от std а не от boost. кстати какая разница между
два?). Итак, скажем, у меня есть следующий код:
ClassA* raw = new ClassA;
std::shared_ptr<ClassA> shared(raw);
Что происходит сейчас, когда общий указатель выходит из области видимости (скажем, он был объявлен локально в функции
и теперь я выхожу из функции). Будет лиClassA
объект все еще существует, потому что необработанный указатель
указывает на это?