R
Und wenn ich schreibe das ein Objekt bzw. das Binäre Abbildung davon im Flash liegt, dann liegt es da. Warum und wieso ist für die Frage total unerheblich.
Da du die Form als unerheblich betrachtest, kann man eigentlich nur davon ausgehen, dass du lesen und schreiben gleichermassen in der Hand hasst, also Dein Code ist ... richtig ?
Dann wuerd ich Dir sowieso empfehlen, ein (binaer) Serialize Framework zu verwenden ....
z.b. boost::serialize
Falls du es unbedingt von Hand selber machen willst, wegens dem lerneffekt, dann macht man das "üblicherweisse" mit binaerstreams !
std::ifstream infile("C:\\myfile.bin",ios::in | ios::binary);
if(in.is_open())
{
int value;
infile >> value; /// sollte nun den serialisierten Wert haben
}
wegschreiben dann entsprechend mit ofstream und dem << operator
Leider gibts noch kein fertigen << >> operator für stl container (ausser std::string, aber der iss bissi tricky für binaere streams).
Aber wenn alle Elemente den >> und << operator implementieren ist das selber zu bauen wiederum trivial. Mann muss nur zuerst die Groesse wegspeichern ...
Danach jedes einzelnhe element ...
Bein einlesen andersrum ... groesse lesen, schleife 0 ... n-1, Object konstruieren, aus dem stream lesen lassen, in den container einfuegen ...
Wenn Performance nen Problem, und mann Massen Daten an POD's hat, kann man natürlich den Operator fuer speziell den std::vector<PODTyp> so überladen, das er memcpy nimmt!
Vioala, fertig
bei klassen sieht es besonders c++ like aus, wenn man den >> << operator fuer die klasse überlaed.
Hirariche Klassenstrukturen sind etwas komplexer, gehen aber auch so ....
Kommt noch Virtualitaet hinzu, wirds noch ne nummer komplizierter. Da werden dann "class factories" bzw. "factory methods" schnell Pflicht.
Ciao ....