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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2018, 11:44   #31
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Код:
2)if (jsonData["classType"].operator==( ClassType::TEST))
от тут вы написал что это бред. Поэтому нужно изменить. я еще раз документацию посмотрел QJsonValue ничего толкового не нашел
3)
Код:
 test.setName(jsonData["name"].toString());
вот это поидее верно
4)
Код:
for(auto& сhild : jsonData["children"].toArray())
        {
            std::unique_ptr<Component> childComponent = deserialise(сhild);
            test.addChild(childComponent);
        }

Последний раз редактировалось dimaSlon; 08.06.2018 в 11:48.
dimaSlon вне форума Ответить с цитированием
Старый 08.06.2018, 11:44   #32
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

А скомпилить не пробовали? Вы лучше объясните, кто такой component, которому вы ее потом присваиваете.
p51x вне форума Ответить с цитированием
Старый 08.06.2018, 11:47   #33
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Цитата:
Сообщение от dimaSlon Посмотреть сообщение
Код:
2)if (jsonData["classType"].operator==( ClassType::TEST))
от тут вы написал что это бред. Поэтому нужно изменить. я еще раз документацию посмотрел QJsonValue ничего толкового не нашел
Потому что это так сказать полная запись для более привычной и просто так усложнять запись кода плохой признак. Вы еще триграфы натыкайте (только компилятор постарее возьмите).
p51x вне форума Ответить с цитированием
Старый 08.06.2018, 11:50   #34
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А скомпилить не пробовали? Вы лучше объясните, кто такой component, которому вы ее потом присваиваете.
пробовал. ошибки.
та переменная component она как пятое колесо в возе. я ее создал так как моя функия возвращает std::unique_ptr<Component> а так мне нужно возвратить test , все что в ней находится
dimaSlon вне форума Ответить с цитированием
Старый 08.06.2018, 11:51   #35
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Потому что это так сказать полная запись для более привычной и просто так усложнять запись кода плохой признак. Вы еще триграфы натыкайте (только компилятор постарее возьмите).
такая запись луче?
Код:
if (jsonData["classType"] ==( ClassType::TEST))
dimaSlon вне форума Ответить с цитированием
Старый 08.06.2018, 11:54   #36
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Код:
std::unique_ptr<Component> childComponent = deserialise(сhild);
и снова я нето что нужно сюда в рекурсию передаю ((.
Мне нужно QJsonObject а я передаю QJsonValue

Последний раз редактировалось dimaSlon; 08.06.2018 в 12:00.
dimaSlon вне форума Ответить с цитированием
Старый 08.06.2018, 11:55   #37
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Ну вот вам, что проще и понятнее читать? == или operator==()? Еще бы явное приведение типа написали...
p51x вне форума Ответить с цитированием
Старый 08.06.2018, 11:57   #38
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну вот вам, что проще и понятнее читать? == или operator==()? Еще бы явное приведение типа написали...
а явное приведение типов это например (int) b ?
dimaSlon вне форума Ответить с цитированием
Старый 08.06.2018, 12:01   #39
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Приведение в С стили в С++ не советуют использовать, лучше *_cast.

Цитата:
Сообщение от dimaSlon Посмотреть сообщение
Мне нужно QJsonObject а я передаю QJsonValue
Именно. Вы же элементы документа перебираете, а не документы. Хотя toObject есть...
p51x вне форума Ответить с цитированием
Старый 08.06.2018, 12:04   #40
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Приведение в С стили в С++ не советуют использовать, лучше *_cast.


Именно. Вы же элементы документа перебираете, а не документы. Хотя toObject есть...
Код:
 std::unique_ptr<Component> childComponent = deserialise(сhild.toObject());
dimaSlon вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написал программу, которая должна выводить среднее арифметическое ряда чисел, вроде все работает, но выводит какое-то левое число lfybbk Общие вопросы C/C++ 6 30.12.2016 11:33
Может ли функция возвращать множество значений? Алексей_2012 Помощь студентам 22 27.08.2015 13:19
Может ли функция возвращать массив? TzX Общие вопросы Delphi 4 20.09.2010 19:27
Как создать обратную функцию, которая из уникального номера будет возвращать строку? SkAndrew Общие вопросы Delphi 8 06.04.2008 21:10