Написать и прочитать сложный объект в файл в C ++ - PullRequest
0 голосов
/ 06 января 2011

У меня есть объект с несколькими векторами других объектов в качестве членов.Я хочу записать этот объект в файл все сразу (в двоичном режиме), вместо записи каждого члена.Как я могу это сделать?в этом случае я хочу написать объект «A» из класса AccList (все мои данные сохранены в «A»!), это моя ClassDiagram: http://askus.ir/ClassDiagram1.png

Ответы [ 2 ]

5 голосов
/ 06 января 2011

Вы можете использовать boost :: serialization

3 голосов
/ 06 января 2011

вы можете использовать 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;

учебник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...