2010-06-06 2 views
2

Я не знаю, возможно ли это, но у меня есть класс, и я сделал его экземпляр. Я также вкладываю в него все. Он имеет векторы и другие вещи. Мне было интересно, могу ли я сохранить его содержимое (экземпляр) в двоичный файл, а затем перезагрузить его и вставить из файла. СпасибоЗагрузка и сохранение класса в двоичном файле

ответ

3

Да, иногда, своего рода ...

Сериализация является сложной проблемой. Не разрешайте это самостоятельно (т. Е. Не изобретайте велосипед ... много умных людей уже это сделали). То, что вы описали, работает в ограниченной среде:

  • Ваши машины для чтения и записи имеют одинаковые endianness.
  • Ваш класс содержит данные только в пределах его отпечатка (без указателей или объектов с указателями).
  • Это не для реального мира
    • реальный мир, как правило, нуждается в чем-то лучше
    • реальный мир, как правило, хочет обратно совместим с изменениями
    • реальный мир, как правило, не может предвидеть аппаратные изменения

Возможно, вы захотите изучить различные схемы сериализации. У них есть свои плюсы и минусы, которые вы найдете много информации о StackOverflow.

Для того чтобы вы начали, изучите Google's protocol buffers, boost serialization и XML.

3

Всякий раз, когда есть вопрос на C++, ответ скорее всего будет Boost. Проверьте Boost Serialization.

Смежные вопросы