请教串行化的问题:
mul 2002-04-08 04:32:52 class CBase : public CObject
{
DECLARE_SERIAL(CBase);
...
}
class CDerive1 : public CBase
{
DECLARE_SERIAL(CDerive1);
...
}
class CDerive2 : public CBase
{
DECLARE_SERIAL(CDerive2);
...
}
class CDerive3 : public CBase
{
DECLARE_SERIAL(CDerive3);
...
}
class CApp
{
CArray<CBase*,CBase*> m_BaseArray;
int m_nObjNum;
...
}
m_BaseArray可能存入 CDerive1,CDerive2,CDerive3 对象指针。
现在我想在串行化中实现类似以下代码的效果:
CApp::Serialize(ar)
{
if (ar.IsStore())
{
.....
}
else
{
ar >> m_nObjNum;
for (int i=0; i<m_nObjNum; i++)
{
ar >> m_BaseArray[i];
}
}
}
就是不考虑载入的是CDerive1*,CDerive2*,CDerive3*中的哪一种,都以CBase*代替,类似多态性。