Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 10
1

Недоступны параметры типа QString для собственного класса после чтения из файла

06.05.2018, 10:49. Показов 1488. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть Класс ТFloweres, который представляет собой контейнер для класса ТFlower, который в свою очередь содержит структуру TFlowerRecFile. Проблема заключается в том, что при загрузке из файлы методом LoadFromFile в глобальную переменную Floweres записывается цветок со своими данными, все записывается корректно, но как только метод загрузки заканчивает работу - переменные типа QString становятся недоступны, QDateTime - <invalid>, хотя все остальные параметры содержат правильные значения.
P.S.: в основной программе работа ведется не с цветами и клумбами, настоящий код уж извините показать не могу, переводил через автозамену, так что если некоторые имена не совпадают, извините, пишите,я поясню.
Вложения
Тип файла: txt Flower-cpp.txt (7.8 Кб, 2 просмотров)
Тип файла: txt Flower.txt (3.0 Кб, 5 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2018, 10:49
Ответы с готовыми решениями:

Каким образом после чтения из файла, узнать позицию для чтения следующего куска байт
Здравствуйте, задача такова есть файл, размером 1000 байт, нужно открыть его считать 100 байт,...

Смена типа переменной и удаление ее из файла после чтения
Помогите решить проблему схема такая: 1) Записали число С в файл 2) Открыли этот файл прочитали...

Запись объекта класса в файл и чтение из файла (Вызвано необработанное исключение: нарушение доступа для чтения)
Доброго времени суток. Вообщем-то есть некий класс Weapons: class Weapons { public: void...

Параметры типа класса шаблона
смотрите был такой код в файле заголовочном: template &lt;typename DataType&gt; class CircleList {...

2
Эксперт С++
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,880
06.05.2018, 15:10 2
Лучший ответ Сообщение было отмечено AZriel19 как решение

Решение

AZriel19,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// ...
 
struct A {
    QString a;
    QDateTime b;
    QVector<int> c;
};
 
// ...
 
    // структура куда будем копировать
    A y;
    // демонстрация правильного/не правильного копирования
    bool rightWay = true;
    {
        // внутри этого блока существует стркуктура x и ее объекты
        A x;
        x.a = "STRING";
        x.b = QDateTime::currentDateTime();
        x.c.append(1);
 
        if (rightWay) {
            // правильное копирование
            // для не POD типов operator=() увеличивает количество
            // ссылок на данные объекты, чтобы при выходе за границу
            // текущего блока неиспользуемые (те, на которые нет
            // ссылок) были освобождены
            y = x;
        } else {
            // ошибочное копирование, как в Вашем случае
            memmove(&y, &x, sizeof(A));
        }
    } // жизнь объекта х завершена
 
    if (rightWay) {
        // RIGHT "STRING" QDateTime(2018-05-06 14:57:45.813 MSK Qt::TimeSpec(LocalTime)) QVector(1)
        qDebug() << "RIGHT" << y.a << y.b << y.c;
    } else {
        // WRONG "" QDateTime( Qt::TimeSpec(LocalTime)) QVector()
        qDebug() << "WRONG" << y.a << y.b << y.c;
    }

Не по теме:

С Delphi переписываете?



Добавлено через 9 минут
AZriel19, Qt: Implicit Sharing.
1
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 10
06.05.2018, 15:33  [ТС] 3
Да, к сожалению((

Добавлено через 2 минуты
Спасибо большое!
0
06.05.2018, 15:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2018, 15:33
Помогаю со студенческими работами здесь

Как вызвать из одного класса (для метода типа void) метод типа boolean другого класса?
ребят, только учусь и конечно, вопросов возникает много. ситуация вот в чем. есть массив. я должна...

Не получается считать строки из файла из метода собственного класса
Пишу небольшую прогу и возникла такая проблема: при построчном считывании файла из метода моего...

Запись в собственного класса бинарный файл собственного
есть Свой тип данных дробь. Надо реализовать запись и загрузку в\из бинарного файла. #ifndef...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru