сохранение контейнера объектов в файл |
Здравствуйте, гость ( Вход | Регистрация )
сохранение контейнера объектов в файл |
__ilya__ |
21.8.2012, 11:25
Сообщение
#1
|
Студент Группа: Участник Сообщений: 57 Регистрация: 19.1.2012 Пользователь №: 3143 Спасибо сказали: 0 раз(а) Репутация: 0 |
есть некий класс или даже структура в которой есть несколько полей QStrinq, int, double
в другом классе будет контейнер таких объектов
я не привел конструктор и методы добавления, удаления объектов, для этого специальные слоты будут. Собственно вопрос -как мне сохранить содержимое всего контейнера, из этих объектов в файл? Да и из файла считывать, тоже надо Сообщение отредактировал __ilya__ - 21.8.2012, 11:32 |
|
|
panter_dsd |
21.8.2012, 11:40
Сообщение
#2
|
Жаждущий знаний Группа: Участник Сообщений: 254 Регистрация: 1.1.2009 Из: Санкт-Петербург Пользователь №: 474 Спасибо сказали: 32 раз(а) Репутация: 3 |
Определи
QDataStream &operator<<(QDataStream &, const Data &); QDataStream &operator>>(QDataStream &, Data &); для своей структуры и записывай через QDataStream. Сообщение отредактировал panter_dsd - 21.8.2012, 11:40 |
|
|
__ilya__ |
21.8.2012, 11:52
Сообщение
#3
|
Студент Группа: Участник Сообщений: 57 Регистрация: 19.1.2012 Пользователь №: 3143 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
panter_dsd |
21.8.2012, 11:54
Сообщение
#4
|
Жаждущий знаний Группа: Участник Сообщений: 254 Регистрация: 1.1.2009 Из: Санкт-Петербург Пользователь №: 474 Спасибо сказали: 32 раз(а) Репутация: 3 |
Нет. Не путай структуру и поток.
|
|
|
__ilya__ |
21.8.2012, 12:03
Сообщение
#5
|
Студент Группа: Участник Сообщений: 57 Регистрация: 19.1.2012 Пользователь №: 3143 Спасибо сказали: 0 раз(а) Репутация: 0 |
понял.
Но как мне перегрузить операторы >> и <<? я вообще понятия не имею как и что они делать должны Да и вообще не понятно как мне контейнер таких структур загружать? Сообщение отредактировал __ilya__ - 21.8.2012, 12:10 |
|
|
ssoft |
21.8.2012, 12:15
Сообщение
#6
|
Участник Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: 3 |
понял. Но как мне перегрузить операторы >> и <<? я вообще понятия не имею как и что они делать должны
если определять члены, как приватные, то нужно еще определение
Да и вообще не понятно как мне контейнер таких структур загружать?
Сообщение отредактировал ssoft - 21.8.2012, 12:16 |
|
|
__ilya__ |
21.8.2012, 16:41
Сообщение
#7
|
Студент Группа: Участник Сообщений: 57 Регистрация: 19.1.2012 Пользователь №: 3143 Спасибо сказали: 0 раз(а) Репутация: 0 |
может я ошибаюсь, но по моему так перегружаются только дружественные ф-ции. |
|
|
ssoft |
22.8.2012, 8:42
Сообщение
#8
|
Участник Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: 3 |
может я ошибаюсь, но по моему так перегружаются только дружественные ф-ции. Ошибаешься Если члены класса имеют видимость public, то можно не указывать friend отношения. Собственно, operator >>, << - это такие же обычные глобальные методы (функции), как и все остальные. |
|
|
Sokoloff |
23.8.2012, 12:21
Сообщение
#9
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
|
|
|
__ilya__ |
24.8.2012, 12:42
Сообщение
#10
|
Студент Группа: Участник Сообщений: 57 Регистрация: 19.1.2012 Пользователь №: 3143 Спасибо сказали: 0 раз(а) Репутация: 0 |
если я буду сохранять в файл в режиме WriteOnly, содержимое файла полностью перезапишется? тоесть то что было записано до этого не сохранится? по крайней мере у меня вроде так получается
|
|
|
Текстовая версия | Сейчас: 25.11.2024, 11:35 |