Serialisieren...
-
Hallo Freaks,
bietet die STL möglichkeiten Objekte zu serialisieren?
Ich möchtern gerne einen vector voller Objekte speichern können und auch wieder
laden können...
-
dummyx schrieb:
Hallo Freaks,
bietet die STL möglichkeiten Objekte zu serialisieren?
Ich möchtern gerne einen vector voller Objekte speichern können und auch wieder
laden können...Nein, nicht von Haus aus. Grundsätzlich musst du wenn selbst Hand anlegen, dich könnte dabei aber Boost::Serialization unterstützen.
cu André
P.S: Andere Option wäre das Überladen der Streamoperatoren, hierzu gibt es auch was in der FAQ
-
einen struct kann ich ja bspw. in eine binär datei schreiben... oder ein struct array.. geht das auch mit klassen?
-
dummyx schrieb:
einen struct kann ich ja bspw. in eine binär datei schreiben... oder ein struct array.. geht das auch mit klassen?
Wäre mir grundsätzlich neu (und wenn sollten es vermutlich POD-Typen sein), davon abgesehen das spätestens wenn es Zeigerelemente gibt, dir deine "struct"-Lösung mit Sicherheit nicht das liefert, was du willst. Und mit den Containerklassen wirst du alleine schon deshalb keine Chance haben.
cu André
-
Am besten ist es, der Klasse die zugehörigen Ein- und Ausgabefunktionen zu spendieren. Für textbasiertes Arbeiten empfiehlt es sich die Streamoperatoren für deine Klasse zu überladen.
http://tutorial.schornboeck.net/operatoren_ueberladung2.htm
Für das binäre Arbeiten kann man der Klasse die Memberfunktionen read, write spendieren, die diese Aufgabe übernehmen. Die könnten dann etwa diese Signatur habenstd::ostream& write(std::ostream& out) const; std::istream& read(std::istream& in);Wie das konkret aussieht hängt jetzt von deiner Klasse ab.
-
ja das hab ich mir auch schon überlegt;) wie geht den ein serialisierer vor? wenn ich bspw. kompleete vectoren , refernezen zeiger etc. in ner klasse habe? wie macht der das?