在C++中,可以使用序列化庫(如Boost.Serialization)來實現序列化和反序列化操作。以下是一個簡單的示例:
#include <iostream>
#include <fstream>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
class Data {
public:
int id;
std::string name;
// 序列化函數
template<class Archive>
void serialize(Archive & ar, const unsigned int version) {
ar & id;
ar & name;
}
};
int main() {
// 序列化對象
Data data;
data.id = 1;
data.name = "Alice";
std::ofstream ofs("data.txt");
boost::archive::text_oarchive oa(ofs);
oa << data;
ofs.close();
// 反序列化對象
Data newData;
std::ifstream ifs("data.txt");
boost::archive::text_iarchive ia(ifs);
ia >> newData;
ifs.close();
std::cout << "id: " << newData.id << ", name: " << newData.name << std::endl;
return 0;
}
在以上示例中,我們定義了一個簡單的Data類,包含一個整型成員id和一個字符串成員name。Data類中使用了serialize函數來定義如何序列化和反序列化對象。在main函數中,我們創建了一個Data對象并將其序列化到文件"data.txt"中,然后再從文件中反序列化出一個新的Data對象,并輸出其內容。