Как записать на диск данные обьекта, содержащего внутри другие обьекты(сериализация)
Есть массив обьектов разных типов. В обьектах могут содержаться другие обьекты. Каким образом можно реализовать функцию, чтоб разом все обьекты из этого массива в файл записала? Кто сталкивалься, подскажите хоть что нибудь. Или ссылку на какую нить нормальную статью дайте. Сам пытался искать, но везде пишут примеры на C# или Jawa, а я их не знаю.((
Вообще то по определению массив не может содержать объекты разных типов. Скорее всего он содержит указатели на объекты разных типов. В таком случае следует для объектов каждого типа определить виртуальную функцию, которая будет обеспечивать сохранение данных этого объекта в файл. Для сохранения всех объектов надо пробежаться по массиву и вызвать для каждого элемента эту функцию.
Писать для каждого обьекта свою функцию для сохранения-это конечно выход. Но у меня стоит конкретно задача, осуществить сохранение обьектов без написания для каждого из них своей функции. Прогу делают несколько людей. Обьектов буит куча и делать буду их не я. Мне нужно осуществить их сохранение и и чтение их файла.
Можешь еще воспользоваться реализацией сериализации в библиотеке boost.
Можешь еще воспользоваться реализацией сериализации в библиотеке boost.[/QUOTE]
Я вот тоже , прочитав тока что пару статей по диагонали, решил что надо делать базовый класс и от него наследовать все остальное. Далее, я думаю сделать в базовом классе одну виртуальную функцию и функции для обработки каждого из встроенных типов и STL. Потом , в каждом из наследуемых классов, описываем функцию, в котрой всего навсего перечислить через функции(которые в базовом классе опишем) обработки встроенных типов все поля конкретного класса. Так нормально буит?)
Если для сериализации планируешь использовать потоки ввода-вывода, то дополнительная работа по разработке функций обработки встроенных типов не понадобится. Тогда можно перегрузить для базового интерфейса оператор вывода в поток (можно сделать только глобальной friend-функцией), который будет заниматься вызовом виртуальной функции сериализации соответствующего объекта.
Можно конечно, но записывать я буду с помощью WinApi.