2011-01-06 10 views
0

Ich habe ein Objekt mit mehreren Vektor anderer Objekte als Mitglieder. Ich möchte dieses Objekt auf einmal in die Datei schreiben (im Binärmodus), anstatt jedes Mitglied zu schreiben. Wie kann ich das machen? (! Alle meine Daten gespeichert in „A“) in diesem Fall möchte ich Objekt „A“ aus der Klasse AccList das ist mein ClassDiagram schreiben: http://askus.ir/ClassDiagram1.pngSchreiben und lesen Sie ein komplexes Objekt in C++

+0

Auch mit der 'boost :: serialization' unten genannten Verfahren Sie nutzen könnten, muss jedes Mitglied eines komplexen Objekts separat serialisieren. –

Antwort

3

Sie boost :: Serialisierung kann das tun

müssen Sie eine Methode an Ihrem Objekt hinzufügen

template<class Archive> 
void serialize(Archive & ar, const unsigned int version) 
{ 
    ar & this->foo & this->bar; 
} 

diese Methode definieren, welche Mitglied

gespeichert werden muss

nach, für Ihr Objekt speichern Sie tun müssen:

std::ofstream ofs("filename"); 
boost::archive::binary_oarchive oa(ofs); 
oa << data; 

für das Objekt zu lesen, ist es die gleiche Art und Weise,

std::ifstream ifs("filename"); 
boost::archive::binary_iarchive ia(ifs); 
ia >> data; 

tutorial

+0

Können Sie mehr darüber erklären? – Messengerman

+0

es ist besser jetzt denke ich – kinnou02

+0

wo ist der Boost-Namespace, wie kann ich es zu meinem Projekt hinzufügen? – Messengerman

5
+1

Das erste Mal, dass Sie boost :: Serialisierung debuggen Sie ein Gelübde, es in der Zukunft nicht zu verwenden. –

+0

Warum? Vielleicht eine bessere Methode zum Sichern und Wiederherstellen meiner Daten? – Messengerman

Verwandte Themen