在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
方法显示反序列化结果。