Seite 1 von 1

built-in Pointer to Smart Pointer

Verfasst: 5. Dezember 2008 09:10
von gundi_
Hallo,

ich habe folgendes Problem mit den SmartPointern:

wie kann ich diese Pointer in SmartPointer umwandeln:

MyClass* newClass = new MyClass(int x, this);

m_vectorList.insert(newClass);


Der Konstruktor sieht so aus:

MyClass::MyClass(int x, MyClass* myClass){...}


Wie kann ich die built-in Pointer in smart pointer umwandeln.


Danke für eure Hilfe!

Verfasst: 5. Dezember 2008 10:02
von RHBaum
Smartpointer machen nur sinn, wenn sich dein gesamtes konzept drann haelt ....

Aber erstmal ....
MyClass::MyClass(int x, MyClass* myClass){...}
ne klasse die nen verweis auf ne Instanz der selben klasse hat, ist ja noch ok .... Bei parent - child beziehungen zwischen gleichen typen (baeumen, etc) oder bei verlinkten listen hat man das ziemlich oft.

aber
MyClass* newClass = new MyClass(int x, this);
Nen Instanz die sich im konstructur nen Zeiger auf sich selbst zuweisst ....
das ist zeimlich aua ....
macht auch wenig sinn, da du im konstruktor mit dem zeiger nix anfangen kannst, da das element hinter dem zeiger ned fertig konstruiert ist, da du ja grad in dessem konstruktor bist ....
klingt schlimm, isses auch ^^

Sag was du modellieren willst, dann schaun wir mal wie man es geschickt umsetzen kannst, und was fuer einen smartpointer du verwenden kannst (gibt da ja mehrere typen) ....

Ciao ....