Ich habe einen Bibliothekscode (ich kann den Quellcode nicht ändern), der einen Zeiger auf ein Objekt (B) zurückgibt. Ich mag diesen Zeiger als shared_ptr mit dieser Art von Konstruktor unter einer Klasse speichern:Zeiger auf shared_ptr konvertieren
class A
{
public:
A(boost::shared_ptr<B> val);
...
private:
boost::shared_ptr<B> _val;
...
};
int main()
{
B *b = SomeLib();
A a(b); //??
delete b;
...
}
Das heißt, würde ich eine tief Kopie von b machen möchte und kontrollieren ihre Lebenszeit unter einem (auch wenn Original b ist gelöscht (delete b), ich habe immer noch eine genaue Kopie unter a).
ich neu in diesem bin, traurig, wenn es scheint trivial ...
Ich sehe nicht die Verwendung der Funktion "kopieren" ... –
zweite Zeile in der Hauptfunktion. –
@Mykola: Ich sehe es - aber ich verstehe es nicht: es macht einfach keinen Sinn. Es tut uns leid. –