| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > сериализация |
| Автор: knut 11.3.2007, 16:46 | ||
| Добрый день Всем. Вот столкнулся с проблемой сериализацией. Есть два класса cA и cB.У cA есть два метод some_method_1() и some_method_2() в методе some_method_1() создается обект cB a в метод some_method_2() надо пеедать обект созданный в методе some_method_1().
Собственно вопрос. как сериализоварь обект pObj ?. или может можно обойти сериализацию и зделать как то подругому?A P.S без boos a |
| Автор: Xenon 11.3.2007, 17:33 | ||
По-моему если класс состоит только из POD элементов, то можно просто бинарно писать:
|
| Автор: knut 11.3.2007, 17:38 |
| Xenon, не понял куда бинарно писать? нме только надо передат в метод void some_method_2() ; обект зоданный в методе void some_method_1() ; |
| Автор: Fazil6 11.3.2007, 17:43 |
сериализация - это по твоему что? |
| Автор: Xenon 11.3.2007, 17:44 | ||
| knut, Я так понял под сериализацией ты имеешь ввиду запись в файл. Тогда какие проблемы?.. Передавай указатель.
Или я чего-то не понимаю в вопросе |
| Автор: knut 11.3.2007, 17:47 | ||
соxронить обект. |
| Автор: Xenon 11.3.2007, 17:50 |
| knut, передать объект по указателю/ссылке/значению равно, в твоем случае, сериализации(сохранению)? Э? |
| Автор: knut 11.3.2007, 18:26 | ||
Xenon, в твое примере в методе some_method_2(cB* obj) я не получу тот же обект которы был создан в some_method_1().
Добавлено @ 18:36 в методе some_method_1() соьдается и инизализуется обект *pObj так вот в метод some_method_2() надо передать уже этот инизализированный обект *pObj . |
| Автор: vinter 11.3.2007, 18:38 | ||
|
| Автор: likehood 11.3.2007, 18:54 |
| vinter, только ты забыл закоментить вызов второго метода в теле some_method_1, иначе some_method_1 будет возвращать уже удаленный объект. knut, а чем тебе не нравиться вариант, предложенный Xenon'ом? Почему ты решил, что в some_method_2 не передается тот же объект, что был создан в some_method_1? И почему ты решил, что тебе нужна сериализация (кстати, что ты под ней понимаешь?) |
| Автор: knut 11.3.2007, 18:56 | ||
| vinter, так не прокатет в смысле в some_method_2(cB* obj) надо передать полно инизализированный обект pObj (т.е some_method_1() вызовается не зависимао от вызова some_method_2(cB* obj),иx вызовы не как не должны быть связонны.) выполняется some_method_1() инизализует pObj .вот когда уже вузовается some_method_2(cB* obj) ему уже должно быть переданно иницалисованный *pObj ; P.S some_method_1() и some_method_2(cB* obj) они как load и save. Добавлено @ 19:00
см пост 11 |
| Автор: Xenon 11.3.2007, 19:20 | ||
knut, Сделай pObj переменной-членом класса cA
|
| Автор: Dark Elf 11.3.2007, 19:29 |
| http://boost.org/libs/serialization/doc/index.html |
| Автор: Xenon 11.3.2007, 19:30 |
| Dark Elf, При чем в итоге непонятно чего хочет человек |
| Автор: Любитель 11.3.2007, 19:32 |
| Только пофиксить это надо. От многоразового вызова some_method_1 - утечка памяти пойдёт (просто проверку поставить). |
| Автор: Xenon 11.3.2007, 19:35 | ||
Любитель, ну да
|
| Автор: vinter 11.3.2007, 19:41 | ||
|
| Автор: knut 11.3.2007, 20:12 | ||||
Сделал я так (наxимичил)
как такой вариант? Добавлено @ 20:14 только без этого[quote]
|
| Автор: vinter 11.3.2007, 20:16 | ||||||
как тебе такой вариант
Добавлено @ 20:18 твой код работать не будет, у тебя типы разные
и
|
| Автор: Fazil6 11.3.2007, 20:49 | ||
плохо все. Куча непонятно чего непонятно зачем. Такое впечатление, что ты сам плохо представляешь чего хочешь добиться |
| Автор: Xenon 11.3.2007, 21:16 |
| knut, ты объясни лаконично то, чего ты хочешь в результате получить. Мы не кусаемся - поможем. Просто до меня так до сих пор д оконца и не дошло чего ты хочешь. Ты опиши проблему абстрактно |