c++ - 如何序列化这个类?

标签 c++ serialization

谁能帮我用 C++ 序列化这个简单的类:

class State {
public:
    int count;
    Point point;
    double angle;
    Point* possible;
    int possibleSize;
    Line line;
    list<Point> route;

    State() {

    }

    ~State() {
        delete[] possible;
    }

};

// --- Structures

// Line structure (ax + by + c = 0)
struct Line {
    int a;
    int b;
    int c;
};

// Point structure
struct Point {
    int x;
    int y;
};

我不能使用任何第 3 方类或库,我需要将其序列化为字节数组(或字符串)。有人可以写吗?我只是不知道如何开始。

非常感谢。

最佳答案

序列化并不神奇。您需要做的就是编写一个函数,以可预测的方式将类的每个变量成员保存到一个数组中,并编写一个匹配函数来读取这样的数组并设置正确的成员。

如果这不是一个类,并且您被允许使用外部库,请考虑查看 Boost Serialization库,尤其是当您需要序列化很多不同的东西时。

关于c++ - 如何序列化这个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4194789/

相关文章:

C#:输入流不是有效的二进制格式

C++:矩阵类

c++ - 为什么cout指针可以改变数据

c++ - 在 C++11 中用 "auto"推导出的 lambda 类型是什么?

c# - 在 C# 中向可序列化类添加不可序列化成员

python - Pickle - 如果存在则加载变量或创建并保存它

java - 如何在不使用文件的情况下序列化对象(例如 HashMap)?

c++ - 模板特化类型的条件?

c++ - 为什么 std::sort 不按字母顺序排列字符串数组?

c# - 在 C# 中将类序列化为 'almost' xml 字符串