[auto_ptr] Kein explizites :'delete foo' noetig?
-
Jetzt habe ich dazu eine Frage zu einem Code aus einem Buch:
void func() { auto_ptr<MyClass> mc(new MyClass); }// Es wird kein explizites delete mc; angegeben
Ich vermisse ein delete mc.
Oder uebernimmt das der Dtor des auto_ptr?
-
Exakt, wie dir ein Blick in den Source-Code vestätigen wird.
-
Raptor schrieb:
Oder uebernimmt das der Dtor des auto_ptr?
Ja. Genau dafür ist auto_ptr<> ja da.
-
Danke
.
-
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=auto_ptr#Answ
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=Leak#Answ
-
Habs mir mal durchgelesen. (
)
Der wirkliche Vorteil eines auto_ptrs besteht aber nicht darin, dass man sich die eine Zeile delete X; erspart.
Eigentlich darf man nun doch gar nicht mehr explizit deleten, weil der Speicher sonst zweimal freigeben wuerde und beim zweiten Mal der Dtor eines nichtexistenten Objects aufgerufen wuerde, oder?
-
Raptor schrieb:
Habs mir mal durchgelesen. (
)
Der wirkliche Vorteil eines auto_ptrs besteht aber nicht darin, dass man sich die eine Zeile delete X; erspart.
Eigentlich darf man nun doch gar nicht mehr explizit deleten, weil der Speicher sonst zweimal freigeben wuerde und beim zweiten Mal der Dtor eines nichtexistenten Objects aufgerufen wuerde, oder?
Richtig.