在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并通過用戶輸入進行反序列化,最后輸出反序列化后的結果。