关于串行化动态生成对象的问题
我现在有很多子类(例如CLine,CRect,CCurve)都从CGraphic类派生,每一个类我都作了串行化的重载,但是有一件事情我很迷茫,我生命了一个CGraphic指针以后,如何让这个指针从文件中自动知道自己要生成哪个对象,然后去调用相应的串行化函数?
一般的做法我可以在每一个类里面都放进一个标志位表示这个类的类型,然后东过渡出来的类型来生成对象并调用相应的串行读入函数。就象下面那样
ar>>type;
CGraphic* p = CreageGraphic(type);
p->Serialize(ar);
...............
但是如果这样做的话,我用一般的文件读写就可以完全搞定,那要串行化做什么?
串行化到底都保存了什么呢?他和标准的C++文件IO有什么区别呢?