在C++中,序列化和反序列化可以通過自定義類來實現。以下是一個簡單的示例:
#include <iostream>
#include <fstream>
class Person {
private:
std::string name;
int age;
public:
Person(std::string name, int age) : name(name), age(age) {}
void serialize(std::ofstream& ofs) {
ofs << name << " " << age << std::endl;
}
void deserialize(std::ifstream& ifs) {
ifs >> name >> age;
}
void display() {
std::cout << "Name: " << name << ", Age: " << age << std::endl;
}
};
int main() {
Person p1("Alice", 25);
// 序列化
std::ofstream ofs("person.txt");
p1.serialize(ofs);
ofs.close();
// 反序列化
Person p2("", 0);
std::ifstream ifs("person.txt");
p2.deserialize(ifs);
ifs.close();
// 顯示反序列化結果
p2.display();
return 0;
}
在上面的示例中,定義了一個Person
類,包含姓名和年齡兩個成員變量。該類定義了serialize
和deserialize
方法來序列化和反序列化對象的成員變量。在main
函數中,創建了一個Person
對象p1
,并將其序列化到文件person.txt
中。然后再從文件中反序列化得到一個新的Person
對象p2
,最后調用display
方法顯示反序列化結果。