Heim >Backend-Entwicklung >C++ >Wie führt die C++-Funktionsbibliothek die Serialisierung und Deserialisierung durch?

Wie führt die C++-Funktionsbibliothek die Serialisierung und Deserialisierung durch?

WBOY
WBOYOriginal
2024-04-18 10:06:02507Durchsuche

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.

C++ 函数库如何进行序列化和反序列化?

C++-Bibliotheksserialisierungs- und Deserialisierungshandbuch

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 的類,它有 nameage

#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 Klasse boost::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:

🎜Serialisierung🎜🎜
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn