В C ++ вы не записываете «сырые» объекты в файлы, а сериализуете их.В этом нет никакой магии, вам нужно написать свой код сериализации самостоятельно (для удобства перегрузка операторов <<
и >>
).
Вы можете сделать это в старом стиле C, просто выгрузив память, но в дополнениек проблемам, которые это обычно вызывает в C (выравнивание, порядковые номера при передаче данных между системами), вы также получаете проблемы, представленные C ++ (внутреннее представление класса, возможные «скрытые» члены данных, такие как v-таблица и т. д.).
Если вы хотите гарантировать, что вы читаете и записываете надежные данные, которые могут быть переданы между различными системами и / или различными частями программного обеспечения - вам лучше реализовать сериализацию, а не искать ярлыки.
Для этого вы можете использовать библиотеки типа Boost.Serialization .