Klasse in Datei schreiben?
-
Hi Leute,
Wie kann ich eine Klasse mit ihren Klassenelementen komplett in eine Datei schreiben, so wie es mit den Strukturen geht?
Ich hab es mit:
datei.write((char *)myClass, sizeof(myClass));
probier, aber so funktioniert es nicht!
Thanks.
-
das kommt auf die member an
-
Du brauchst eine Memberfunktion, die jedes Element einzeln speichert.
-
Was heißt das jetzt genau, ich kenne mich mit Klassen noch nicht so gut aus! versucht das mal etwas verständlicher zu erklären!
Danke.
-
Wenn deine Klasse oder eine ihrer Komponenten eine virtuelle Funktion besitzt, dann musst du jedes Element einzeln speichern. Sonst müsste es so gehen, wie du geschrieben hast.
-
Hallo,
bevor du anfängst dir über das Schreiben von Klassen in Dateien den Kopf zu zerbrechen, solltest du dir vielleicht nochmal den Unterschied zwischen Klasse und Objekt durch den Kopf gehen lassen.Was du in die Datei schreiben willst sind Objekte. Und wenn es so gehen soll, wie du es beschreibst, dann brauchst du keine Objekte von Klassen mehr. Sobald du nämlich die wahren Vorteile von Klassen einsetzt, funktioniert der von dir gepostete Ansatz (mal abgesehen von dem fehlenden &) nicht mehr.
Noch ein Buchtipp: http://www.amazon.de/exec/obidos/ASIN/3826629841/marcbackccecke
-
Am einfachsten ist es den <<-Operator für Ausgabestreams zu überladen. Ohne näheres über die Konstelation deiner Klassen zu kennen (zumindest die, die direkt mit der Besagten Klasse deren Instanzen gespeichert werden zu tun haben).
-
In 'C++ in 21 Tagen' wird dieses Thema behandelt (Tag 16: Streams).
C++ in 21 Tagen ist online als eBook lesbar: www.mut.de