2012-06-21 4 views
2

При использовании библиотеки сериализации бустер, вы можете вызвать сериализации базового класса сувеличить сериализации базовый класс

ar & boost::serialization::base_object<> (*this); 

в соответствии с документацией. Мне интересно, однако, если это безопасно обойтись без этого (я имею в виду, можете ли вы выбрать не для сериализации данных из базового класса?)

ответ

1

Вы можете не сериализовать данные из базового класса, но тогда любые переменные-члены, которые сериализованы в базовом классе, не будут записаны и восстановлены.

Это может быть нормально, если вы хотите сериализовать конкретный конкретный класс, с которым работаете, и вручную архивируете все переменные, необходимые для восстановления экземпляра класса.

Но зачем вам это нужно? Обычно это говорит о том, что что-то не так с структурой наследования ...

+0

В частности - любые переменные-члены, которые вы не архивируете, возвращаются к любому значению, которое они задают в конструкторе (если есть). – mirams

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