如何序列化和反序列化包含c+中抽象对象容器的对象+;? 我试图在C++中对包含一个抽象对象容器的对象进行序列化和反序列化,有人知道上面的代码示例吗?< p>您可以为抽象类创建一个方法: virtual void serialize(char *out, int outLen) = 0;

如何序列化和反序列化包含c+中抽象对象容器的对象+;? 我试图在C++中对包含一个抽象对象容器的对象进行序列化和反序列化,有人知道上面的代码示例吗?< p>您可以为抽象类创建一个方法: virtual void serialize(char *out, int outLen) = 0;,c++,C++,。。然后是一个静态反序列化器: AbstractClass deserialize(char *serializedString, int strLen); 在反序列化程序中,可以使用不同的策略对抽象类的正确子类进行反序列化。看一看 它包含一些方法来帮助进行链接(链接丢失左侧的帧) 当然,不要直接跳到那一页,你会想把整件事都读一遍

。。然后是一个静态反序列化器:

AbstractClass deserialize(char *serializedString, int strLen);
在反序列化程序中,可以使用不同的策略对抽象类的正确子类进行反序列化。

看一看

它包含一些方法来帮助进行链接(链接丢失左侧的帧)


当然,不要直接跳到那一页,你会想把整件事都读一遍嘿,刚才我问了一个类似的问题。看看dribeas的回答,特别好。此方法允许添加抽象类型的新对象,而不会对现有代码进行太多操作(即,我们可以序列化它们,而无需向反序列化器添加额外的switch/else if选项)


什么是抽象对象?由于抽象类是不能实例化对象的类,所以术语“抽象对象”听起来让我惊讶。我相信这取决于容器&对象本身。根据我的理解,您必须能够序列化它们中的每一个,以便可以序列化您的对象。IE:你序列化了你的对象,这将序列化容器,这将序列化它包含的每个对象。@Daniel-我想他的意思是容器不知道它包含的对象类型。不过,我可能错了。@DB-二读,我认为你是对的。