1
我使用升壓序列化\反序列化幾個班到磁盤。我正在重構許多需要更改類層次結構的類。我希望下面的僞代碼是足夠清晰的傳達我的情況:使用Boost,如何反序列化的C++類之後的類層次結構發生變化
原來的設計是類似以下內容:
class Alpha : public BaseOne, public BaseTwo
{
//member data omitted
void serialize(Archive & ar, const unsigned int version);
}
inline void Alpha::serialize(Archive & ar, const unsigned int version)
{
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(BaseOne);
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(BaseTwo);
// also serialize member data
}
class Beta: public Alpha
{
//member data omitted
void serialize(Archive & ar, const unsigned int version);
}
inline void Beta:::serialize(Archive & ar, const unsigned int version)
{
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Alpha);
// also serialize member data
}
類層次結構已更改爲以下幾點:
class Alpha : public BaseOne
{
void serialize(Archive & ar, const unsigned int version);
}
class Beta: public Alpha, public BaseTwo
{
void serialize(Archive & ar, const unsigned int version);
}
是否可以將以前的類層次結構保存的數據反序列化爲新設計?
問候, 約翰