К сожалению, в C ++ нет автоматического способа сериализации объектов. Это связано с тем, что любой механизм сериализации должен уметь «понимать» пользовательский объект во время выполнения, а C ++ не содержит для этого необходимой информации. Java и .Net с другой стороны имеют то, что называется, Reflection. Этот механизм позволяет любому просматривать структуру данных любого произвольного объекта во время выполнения.
Все это не означает, что не существует способа сериализации объекта C ++ при относительно небольших усилиях. Возьмем, к примеру, стандартную библиотеку потоков C ++. Написав
int x = 2010;
cout << x << endl;
вы фактически сериализуете объект типа int. Возможно также расширить этот механизм для поддержки вашего пользовательского класса. Это делается просто путем перегрузки оператора <<. Это не так хорошо, как Java-сериализация, но и очень удобно. </p>
Есть также некоторые библиотеки, которые делают его еще более простым. Как уже упоминалось, библиотека повышения сериализации отлично справляется со своей задачей. Работа с сериализацией Boost очень похожа на работу с iostream, но она решает некоторые проблемы, присущие стандартным потокам.