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 °rees; 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) {} };
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 }
Penyahserikatan adalah serupa:
std::ifstream ifs("filename.dat", std::ios::binary); gps_position g; { boost::archive::binary_iarchive ia(ifs); ia >> g; }
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!