klassen lagerstätte fehlt mir ;)
-
hät nicht gedacht das das so kompliziert wird
class MyClass1 : Example { auto_ptr<AAA> pointer; MyClass1 (const char * class_name); void Init(); }; void MyClass1::Init() { pointer.reset(new AAA); //error C2039: 'reset' : Ist kein Element von 'auto_ptr<class AAA>' }
*verzweifelt* ^^
-
Seltsam, auto_ptr<> sollte eine reset-Funktion haben. Hast du vielleicht eine alte Standardbibliothek? Das Verhalten von auto_ptr wurde während der Standardisierung mehrfach verändert, vielleicht kam reset erst später dazu - das wäre jedenfalls eine mögliche Erklärung.
Ist aber auch alles halb so wichtig, denn IMHO ist auto_ptr hier eh nicht die richtige Wahl. auto_ptr<> ist nett, um über new erstellt Objekte sicher von einer Funktion in die andere zu bekommen, verhält sich dafür als Klassenelement aber sehr unangenehm. Du solltest dir mal die SmartPtr (in diesem Fall den einfachen scoped_ptr<>) von www.boost.org angucken. Die sind für den nächsten Standard vorgemerkt und brauchen nur ein einfaches #include um zu funktionieren (d.h. du brauchst keine zusätzlichen Libs, du musst boost nur entpacken und den Pfad setzen). scoped_ptr<> hat auf jeden Fall die reset-Elementfunktion.
-
Bei MSVC 6 hat auto_ptr noch keine reset-Funktion. Dann musst du statt pointer.reset(new AAA) eben pointer = auto_ptr<AAA>(new AAA) schreiben.
(hast Du eigentlich auch <memory> #includiert??)
-Gunnar
-
@Gunnar: deine variante geht .. danke schön
@operator void:
Die sind für den nächsten Standard vorgemerkt
also in php kenne ich versionen die auch am laufenden band kommen .. in c++ kenne ich höchstends compilerversionen, aber noch nie was von c++ 1.2 gehört.
wie genau meinst du das? und wo kann man sich über solche neuen "standards" informieren?so ich habe mir mal boost gesaugt. und es klappt damit auch ..
vielen dank für eure freundliche unterstützung, nu kann ich weitermachen ^^
-
Nicht c++ 1.2, aber C++98
Der nächste Standard heißt bisher C++0x, da das genaue erscheinungsdatum nicht feststeht. Informationen: http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/
-
@Helium
Mit dem im Oktober 2003 offiziell integrierten TC sind wir mittlerweile bei C++03 oder auch ISO/IEC 14882:2003(E)
-
Puh, warum kostet der denn so viel? http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%3A2003
-
Hallo,
für 60 Euro bekommst du bei Amazon das Dinge in Buchform.
Und hier bekommst du die pdf-Version für die normalen 18$:http://webstore.ansi.org/ansidocstore/product.asp?sku=INCITS%2FISO%2FIEC+14882-2003
-
Interessant. Weißt du zufällig auch, was der Unterschied zwischen der von dir angegebenen Version und meiner ist? (Die dateigrößer unterscheided sich zwar nur um 0.01MB, aber der Preisunterschied ist doch gewaltig).
-
Hallo,
keine Ahnung. Aber das war bei der 98-Version ja auch schon so. Da gab es auch eine > 200$ und eine 18$ Version. Beide waren aber inhaltlich identisch.