C ++ puntero crudo y std :: shared_ptr

Estoy trabajando constd::shared_ptr y durante mi desarrollo de software conocí un par de casos que me permitieron dudar sobre la administración de la memoria. Tenía una biblioteca de terceros que siempre me proporcionaba punteros sin procesar de funciones y en mi código los estaba transformando enstd::shared_ptr (Desde el estándar y no desde el impulso. Por cierto, ¿cuál es la diferencia entre los dos?). Así que digamos que tengo el siguiente código:

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

Qué sucede ahora cuando el puntero compartido queda fuera del alcance (digamos que se declaró localmente en una función y ahora estoy saliendo de la función). Será elClassA objeto todavía existe porque un puntero en bruto está apuntando a él?

Respuestas a la pregunta(3)

Su respuesta a la pregunta