c ++中反序列化时的类类型

时间:2010-04-25 04:35:20

标签: c++ serialization

我正在用c ++开发游戏编辑器。我已经使用DiaSDK实现了反射机制。现在我想通过序列化在某个级别文件中存储对象的状态(如Camera,Lights,Static mesh)。 后来能够通过反序列化来检索它们的状态。对于我来说,对象化对象不是问题。在反序列化过程中,我将类类型作为字符串。那么如何使用该类型字符串创建对象的实例?这样我就可以创建对象了那种特殊类型。

1 个答案:

答案 0 :(得分:3)

序列化类时,需要发出其运行时类型,以便在反序列化时可以实例化正确的类型。否则,无法确定要使用的运行时类型。

基于类型字符串构造类的一种好方法是构建从类名到能够实例化这种类型的工厂对象的哈希映射。您需要根据可能反序列化的类型创建该映射。如果这组类型可以改变,那么一种常见的方法是提供一种方法,通过该方法,工厂可以使用特定名称的地图“注册”或“注销”。