C ++: Wie können Objekte ohne die Verwendung von Bibliotheken serialisiert / deserialisiert werden?

Ich versuche zu verstehen, wie Serialisierung / Deserialisierung in C ++ ohne die Verwendung von Bibliotheken funktioniert. Ich habe mit einfachen Objekten begonnen, aber als ich einen Vektor deserialisierte, stellte ich fest, dass ich den Vektor nicht erhalten kann, ohne zuvor seine Größe geschrieben zu haben. Außerdem weiß ich nicht, welches Dateiformat ich wählen soll, da ich es nicht richtig lesen kann, wenn Ziffern vor der Vektorgröße existieren. Außerdem möchte ich das mit Klassen und Kartencontainern machen. Meine Aufgabe ist es, ein Objekt wie dieses zu serialisieren / deserialisieren:

PersonInfo
{
    unsigned int    age_;
    string name_;
    enum { undef, man, woman } sex_;
}

Person : PersonInfo 
{
    vector<Person>      children_;
    map<string, PersonInfo>     addrBook_;
}

Derzeit kann ich einfache Objekte wie folgt serialisieren:

vector<PersonInfo> vecPersonInfo;
vecPersonInfo.push_back(*personInfo);
vecPersonInfo.push_back(*oneMorePersonInfo);

ofstream file("file", ios::out | ios::binary);
if (!file) {
    cout<<"can not open file";
} else {
    vector<PersonInfo>::const_iterator iterator = vecPersonInfo.begin();
    for (; iterator != vecPersonInfo.end(); iterator++) {
        file<<*iterator;
    }

Könnten Sie mir bitte vorschlagen, wie ich das für dieses komplexe Objekt oder ein gutes Tutorial machen kann, das es klar erklärt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage