Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2017, 19:46   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию QDataStream перегрузка <<

здравствуйте

Есть класс, в нем поля int, QString. Для сохранения в файл нужно перегрузить оператор <<.
Обычно это делается так:
Код:
friend QDataStream& operator<<( QDataStream& d, MyClass& c );
Но тут дело в том что у меня массив объектов виртуального класса. От этого виртуального класса наследуются, более 10-ти других.

Само собой тут подойдет виртуальный полиморфизм. И Оператор, для каждого класса, я перегрузил так:
Код:
virtual QDataStream &operator <<(QDataStream &stream)
{
    stream << str; //QString
    stream << i; //int
    return stream;
}
Скажите так правильно?

Дело в том что мне массив объектов нужно сохранить в файл. при сохранении вроде ошибок нет. А вот при загрузке все строки получаются пустыми, все int нули.
SAMOUCHKA вне форума Ответить с цитированием
Старый 20.01.2017, 19:54   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Код:
Я бы сделал так:
void operator << (QDataStream& stream, const QMyBaseClass& object)
{
  object.SaveToStream(stream);
}
Метод SaveToStream будет виртуальным и надо будет переопределить во всех наследниках.
waleri вне форума Ответить с цитированием
Старый 21.01.2017, 07:15   #3
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

проблема была в том что у меня массив указателей. вот я и сохранял указатели
SAMOUCHKA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
QDataStream ser70 Общие вопросы C/C++ 5 24.02.2015 21:52
перегрузка new f.hump Общие вопросы C/C++ 6 10.04.2013 17:23
Перегрузка MoNsTeRmEn Общие вопросы C/C++ 2 20.11.2012 10:43
Перегрузка << и >> Arrioh Помощь студентам 2 02.11.2012 23:54
QDataStream + OGG + OpenAL FYBVFPFYBC Qt и кроссплатформенное программирование С/С++ 0 03.09.2012 00:48