Ich versuche zu lernen, wie C++ - Objekte zu serialisieren. Nach dem Lesen von ein paar Posts hier, scheint es eine gute Idee zu verwenden boost
Serialisierungsfunktionen und Archivierung mit Lade/Speichern-Funktionen. Allerdings möchte ich die Boost-Bibliothek vermeiden.Serialize C++ - Objekt, ohne seine Felder zu kennen
Konzeptionell kann ich ein Objekt speichern, ohne seine Felder zu kennen. Ohne Reflexion in C++ ist die einzige Möglichkeit, ein Objekt zu speichern, die Kenntnis aller seiner Klassenmitglieder.
Kann stringstream
verwenden und den Operator <<
überladen, um ein Objekt in eine Zeichenfolge zu konvertieren, kann ich ein Objekt direkt speichern.
Danke, K.
Nein. In einer Sprache ohne Nachdenken können Sie mit den Mitgliedern nichts anfangen, wenn Sie nicht wissen, was diese Mitglieder sind. –
Jemand muss seine Felder kennen, möglicherweise selbst. Sie können es so einrichten, dass der Aufrufer die Felder nicht kennen muss und dass es eine Funktion zum Lesen und Schreiben gibt. Beachten Sie, dass die Serialisierung viele heikle Probleme hat, wie Versionsverwaltung und dergleichen, die Bibliotheken, die alle für eine bestimmte Größe geeignet sind, in Frage stellen. – Yakk