说我有两种类:class A
和class B
:
class A{};
class B{};
我有一个名为test.srz
的文件,其中包含从对象A或对象B序列化的数据。现在我想对其进行反序列化,下面是代码:
#include <iostream>
#include <fstream>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
int main() {
std::ifstream ifile("test.srz");
boost::archive::text_iarchive iTextArchive(ifile);
??? obj;
iTextArchive >> obj;
}
我的问题是:我怎么知道obj
的类型?在这种情况下,它可以是A
或B
。如果我能够得到它的类型,那么它已经被反序列化了,对吗?