Лучший способ записать пользовательский класс в файл, используя qt
Привет всем (там:).
Какой способ лучше всего подходит для записи пользовательского класса в файл в Qt?
Заранее спасибо.
Матиас
1 ответ
РЕДАКТИРОВАТЬ: Вопрос уже был задан. Сериализация с Qt
Лучший способ - это сериализация с использованием QDataStream. Для данного класса MyClass
необходимо определить новые операторы потока
QDataStream &operator<<(QDataStream &, const MyClass &);
QDataStream &operator>>(QDataStream &, MyClass &);
QDataStream
уже способен писать несколько классов Qt, в основном коллекции и другие удобные классы, такие как QImage
и т. д.... Обратите внимание, что вы не можете сериализовать любой подкласс QObject
, Есть причины:), но ограничимся объяснением того, что QObject
сам по себе не предоставляет ни конструкторов копирования, ни потоковых функций in \ out, подобных приведенным выше.
Обратите внимание, что если ваш пользовательский класс наследует класс, уже обеспечивающий сериализацию, вам необходимо вызывать операторы потока для этого суперкласса (тот же принцип, что и вызов конструктора суперкласса при создании подкласса).