Heim >Backend-Entwicklung >C++ >Wie führt die C++-Funktionsbibliothek die Serialisierung und Deserialisierung durch?
C++-Bibliotheks-Serialisierungs- und Deserialisierungshandbuch Serialisierung: Erstellen Sie einen Ausgabestream und konvertieren Sie ihn in ein Archivformat. Objekte ins Archiv serialisieren. Deserialisierung: Erstellt einen Eingabestream und stellt ihn aus dem Archivformat wieder her. Deserialisieren Sie Objekte aus dem Archiv. Praxisbeispiel: Serialisierung: Erstellen eines Ausgabestreams. Erstellen Sie ein Archivobjekt. Erstellen Sie Objekte und serialisieren Sie sie im Archiv. Deserialisierung: Erstellen Sie einen Eingabestream. Erstellen Sie ein Archivobjekt. Erstellen Sie Objekte und deserialisieren Sie sie aus dem Archiv.
Einführung
Serialisierung und Deserialisierung ist der Prozess der Konvertierung von Objekten in Byteströme und der Rekonstruktion von Objekten aus Byteströmen. In C++ können Sie Funktionsbibliotheken verwenden, um diese Funktionalität zu implementieren. In diesem Artikel wird erläutert, wie Sie die binäre Archivierungsfunktionsbibliothek (boost::archive) für die Serialisierung und Deserialisierung verwenden.
Serialisierung
Um ein Objekt zu serialisieren, müssen wir einen Ausgabestream erstellen und ihn mithilfe der Klasse boost::archive::binary_oarchive
in das Archivformat konvertieren. boost::archive::binary_oarchive
类将其转换为存档格式。
#include <boost/archive/binary_oarchive.hpp> // 创建一个输出流 std::ofstream output("myfile.dat"); // 创建一个存档对象 boost::archive::binary_oarchive archive(output); // 将对象序列化到存档中 archive << myObject;
反序列化
要反序列化一个对象,我们需要创建一个输入流并使用 boost::archive::binary_iarchive
类将其从存档格式恢复。
#include <boost/archive/binary_iarchive.hpp> // 创建一个输入流 std::ifstream input("myfile.dat"); // 创建一个存档对象 boost::archive::binary_iarchive archive(input); // 从存档中反序列化对象 MyObject loadedObject; archive >> loadedObject;
实战案例
假設我們有一個名為 Person
的類,它有 name
和 age
#include <boost/archive/binary_oarchive.hpp> // 创建一个输出流 std::ofstream output("person.dat"); // 创建一个存档对象 boost::archive::binary_oarchive archive(output); // 创建一个 Person 对象 Person person("John", 30); // 将 Person 对象序列化到存档中 archive << person;
Deserialisierung
Um ein Objekt zu deserialisieren, müssen wir einen Eingabestream erstellen und ihn mithilfe der Klasseboost::archive::binary_iarchive
aus dem Archivformat wiederherstellen. #include <boost/archive/binary_iarchive.hpp> // 创建一个输入流 std::ifstream input("person.dat"); // 创建一个存档对象 boost::archive::binary_iarchive archive(input); // 创建一个 Person 对象 Person loadedPerson; // 从存档中反序列化 Person 对象 archive >> loadedPerson; std::cout << loadedPerson.getName() << ", " << loadedPerson.getAge() << std::endl;Praktischer Fall
Angenommen, wir haben eine Klasse namens Person
, die zwei Attribute hat: name
und age
. So serialisieren und deserialisieren Sie es:
John, 30🎜🎜Deserialisierung🎜🎜rrreee🎜🎜Ausgabe🎜🎜rrreee
Das obige ist der detaillierte Inhalt vonWie führt die C++-Funktionsbibliothek die Serialisierung und Deserialisierung durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!