在C++中,可以通过重载流操作符<<和>>来实现Point类的序列化和反序列化。
下面是一个简单的示例代码:
#include <iostream>
using namespace std;
class Point {
public:
int x;
int y;
// 重载<<操作符,实现序列化
friend ostream& operator<<(ostream& out, const Point& p) {
out << p.x << " " << p.y;
return out;
}
// 重载>>操作符,实现反序列化
friend istream& operator>>(istream& in, Point& p) {
in >> p.x >> p.y;
return in;
}
};
int main() {
Point p1;
p1.x = 10;
p1.y = 20;
// 序列化
cout << "Serialized Point p1: " << p1 << endl;
// 反序列化
Point p2;
cout << "Enter x and y for Point p2: ";
cin >> p2;
cout << "Deserialized Point p2: " << p2 << endl;
return 0;
}
在上面的代码中,我们定义了一个Point类,并重载了<<和>>操作符,实现了Point类的序列化和反序列化。在main函数中,我们首先创建一个Point对象p1并序列化输出,然后创建一个新的Point对象p2并通过用户输入进行反序列化,最后输出反序列化后的结果。