Mam klasę w której inicjalizuję wskaźniki.

class Loop
{
private:
	Regulator * m_REGULATOR;
	Object * m_ARX;
public:
Loop(void) { m_REGULATOR = NULL; m_ARX = NULL};
void Loop::set_regulator(Regulator * regulator) { m_REGULATOR = regulator; };
void Loop::set_object(Object * arx) { m_ARX =  arx};
}


Loop * loop = new Loop;
loop->set_regulator(regulator);
loop->set_object(arx);
 

Program tak działa, że całość operacji wykonuje się w klasie ale obiekty typu regulator i arx są stworzone poza klasą dynamicznie i tam można tymi obiektami już sterować, przekazane są one do klasy, w której już tylko wywułują potrzebne metody. Obiekty te zainicjowane są dynamicznie w Windows Forms.

Pytanie jak wykorzystać shared_ptr wewnątrz klasy żeby nie musieć usuwać tych obiektów w destruktorze klasy Loop, gdyż klasa loop jest kilka razy inicjalizowana i usuwana w trakcie życia programu. W trakcie życia programu obiekty Regulator i ARX są tworzone także kilka razy.