built-in Pointer to Smart Pointer

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
gundi_
Beiträge: 28
Registriert: 16. September 2008 14:04

built-in Pointer to Smart Pointer

Beitrag 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!
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag 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 ....
Antworten