在C++中,可以通过重载流操作符<<和>>来实现Point类的序列化和反序列化。
下面是一个简单的示例代码:
#includeusing 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并通过用户输入进行反序列化,最后输出反序列化后的结果。