Surowy wskaźnik C ++ i std :: shared_ptr

Pracuję zstd::shared_ptr i podczas mojego rozwoju oprogramowania spotkałem kilka przypadków, które pozwoliły mi wątpić w zarządzanie pamięcią. Miałem bibliotekę innej firmy, która dawała mi zawsze surowe wskaźniki z funkcji, aw moim kodzie przekształcałem jestd::shared_ptr (od std, a nie od boost. Przy okazji, jaka jest różnica między nimi?). Powiedzmy, że mam następujący kod:

ClassA* raw = new ClassA;
std::shared_ptr<ClassA> shared(raw);

Co dzieje się teraz, gdy współużytkowany wskaźnik wychodzi poza zakres (powiedzmy, że został zadeklarowany lokalnie w funkcji, a teraz wychodzę z funkcji). BędzieClassA obiekt nadal istnieje, ponieważ wskazuje na niego surowy wskaźnik?

questionAnswers(3)

yourAnswerToTheQuestion