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