Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah pustaka fungsi C++ melakukan pensirilan dan penyahserikatan?

Bagaimanakah pustaka fungsi C++ melakukan pensirilan dan penyahserikatan?

WBOY
WBOYasal
2024-04-18 10:06:02417semak imbas

Pensirian dan Penyahserikatan Perpustakaan C++ Pensirilan: Cipta strim output dan tukarkannya kepada format arkib. Mensiri objek ke dalam arkib. Penyahserialisasian: Mencipta aliran input dan memulihkannya daripada format arkib. Nyahserialisasi objek daripada arkib. Contoh praktikal: Serialisasi: Mencipta aliran keluaran. Buat objek arkib. Cipta dan sirikan objek ke dalam arkib. Penyahserialisasian: Buat aliran input. Buat objek arkib. Cipta objek dan deserialisasikannya daripada arkib.

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

Panduan Pensirilan dan Penyahserikatan Perpustakaan C++

Pengenalan

Pensirilan dan penyahsiriran ialah proses menukar objek kepada aliran bait dan membina semula objek daripada aliran bait. Dalam C++, anda boleh menggunakan perpustakaan fungsi untuk melaksanakan fungsi ini. Artikel ini akan memperkenalkan cara menggunakan pustaka fungsi arkib binari (boost::archive) untuk penyirian dan penyahsiran.

Serialization

Untuk mensirikan objek, kita perlu mencipta aliran output dan menukarnya kepada format arkib menggunakan kelas boost::archive::binary_oarchive. 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;

Deserialisasi

Untuk menyahsiri objek, kita perlu mencipta aliran input dan memulihkannya daripada format arkib menggunakan kelas boost::archive::binary_iarchive.

#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;
Kes praktikal

Katakan kita mempunyai kelas bernama Orang, yang mempunyai dua atribut: nama dan umur. Begini cara untuk mensiri dan menyahsirikannya:

🎜Serialization🎜🎜
John, 30
🎜🎜Deserialization🎜🎜rrreee🎜🎜Output🎜🎜rrreee

Atas ialah kandungan terperinci Bagaimanakah pustaka fungsi C++ melakukan pensirilan dan penyahserikatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn