温馨提示×

C++ Point的序列化与反序列化

c++
小樊
85
2024-07-14 10:35:23
栏目: 编程语言

在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并通过用户输入进行反序列化,最后输出反序列化后的结果。

0