用c ++编写和读取复杂对象到文件

时间:2011-01-06 11:55:42

标签: c++ file object

我有一个对象,其他对象的几个向量作为成员。我想一次性(以二进制模式)将此对象写入文件,而不是编写每个成员。我怎样才能做到这一点? 在这种情况下,我想从类AccList写入对象“A”(我的所有数据都保存在“A”中!) 这是我的ClassDiagram: http://askus.ir/ClassDiagram1.png

2 个答案:

答案 0 :(得分:5)

您可以使用boost::serialization

答案 1 :(得分:3)

你可以使用boost :: serialization来做那个

您必须在对象上添加一个方法

template<class Archive>
void serialize(Archive & ar,  const unsigned int version)
{
    ar & this->foo & this->bar;
}

此方法定义必须存储的成员

之后,为了保存你的对象,你必须这样做:

std::ofstream ofs("filename");
boost::archive::binary_oarchive oa(ofs);
oa << data;

用于读取对象,它的方式相同,

std::ifstream ifs("filename");
boost::archive::binary_iarchive ia(ifs);
ia >> data;

tutorial