有没有人能帮我在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;
};
我不能使用任何第三方类或库,我需要将其序列化为字节数组(或字符串)。有人能写出怎么写吗?我只是不知道该怎么开始。
非常感谢。
发布于 2010-11-16 13:52:29
序列化并不神奇。您所需要做的就是编写一个函数,以可预测的方式将类的每个变量成员保存到一个数组中,并编写一个匹配函数来读取这样的数组并设置正确的成员。
如果这不是针对类的,并且允许使用外部库,那么可以考虑查看Boost Serialization库,特别是当您需要序列化许多不同的东西时。
发布于 2010-11-16 14:07:03
首先,弄清楚如何序列化所有的int
和double
。This question对此有一些提示。请注意,double
比int
要复杂得多。尽管这个问题及其答案是用C语言编写的,但任何C++序列化都需要使用相同的核心原则。
您的两个成员看起来像可变长度列表。序列化其中一个元素的好方法是序列化元素(possibleSize
或route.size()
)的数量,然后每次序列化一个元素。
https://stackoverflow.com/questions/4194789
复制