Лучший способ записать пользовательский класс в файл, используя qt

Привет всем (там:).
Какой способ лучше всего подходит для записи пользовательского класса в файл в Qt?
Заранее спасибо.
Матиас

1 ответ

Решение

РЕДАКТИРОВАТЬ: Вопрос уже был задан. Сериализация с Qt

Лучший способ - это сериализация с использованием QDataStream. Для данного класса MyClassнеобходимо определить новые операторы потока

QDataStream &operator<<(QDataStream &, const MyClass &);
QDataStream &operator>>(QDataStream &, MyClass &);

QDataStream уже способен писать несколько классов Qt, в основном коллекции и другие удобные классы, такие как QImageи т. д.... Обратите внимание, что вы не можете сериализовать любой подкласс QObject, Есть причины:), но ограничимся объяснением того, что QObject сам по себе не предоставляет ни конструкторов копирования, ни потоковых функций in \ out, подобных приведенным выше.

Обратите внимание, что если ваш пользовательский класс наследует класс, уже обеспечивающий сериализацию, вам необходимо вызывать операторы потока для этого суперкласса (тот же принцип, что и вызов конструктора суперкласса при создании подкласса).

Другие вопросы по тегам