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