Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Boost.Serialization Mengendalikan Pensirilan Objek dalam C?

Bagaimanakah Boost.Serialization Mengendalikan Pensirilan Objek dalam C?

DDD
Lepaskan: 2025-01-03 06:20:39
asal
606 orang telah melayarinya

How Does Boost.Serialization Handle Object Serialization in C  ?

Pensiri Objek dalam C

Pensirian membenarkan untuk menukar objek kepada tatasusunan bait, membolehkan penghantaran dan rekreasinya. C , tidak seperti Java, tidak menawarkan mekanisme yang wujud untuk proses ini. Walau bagaimanapun, perpustakaan seperti Boost menyediakan penyelesaian yang komprehensif.

API penyiaran Boost memudahkan penukaran objek kepada tatasusunan bait. Pertimbangkan coretan kod berikut:

#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp>

class gps_position {
public:
    friend class boost::serialization::access;
    template <class Archive>
    void serialize(Archive &ar, const unsigned int version) {
        ar &degrees;
        ar &minutes;
        ar &seconds;
    }

    int degrees;
    int minutes;
    float seconds;

    gps_position(){};
    gps_position(int d, int m, float s) :
        degrees(d), minutes(m), seconds(s) {}
};
Salin selepas log masuk

Untuk mensirikan objek, ikuti langkah berikut:

std::ofstream ofs("filename.dat", std::ios::binary);

// create class instance
const gps_position g(35, 59, 24.567f);

// save data to archive
{
    boost::archive::binary_oarchive oa(ofs);
    // write class instance to archive
    oa << g;
    // archive and stream closed when destructors are called
}
Salin selepas log masuk

Penyahserikatan adalah serupa:

std::ifstream ifs("filename.dat", std::ios::binary);

gps_position g;

{
    boost::archive::binary_iarchive ia(ifs);
    ia >> g;
}
Salin selepas log masuk

Pensirilan Boost menawarkan tawaran yang fleksibel pilihan, termasuk sokongan untuk bersiri penunjuk, kelas terbitan dan mod binari dan teks. Bekas STL juga dikendalikan dengan mudah.

Atas ialah kandungan terperinci Bagaimanakah Boost.Serialization Mengendalikan Pensirilan Objek dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan