Как вернуть NULL или что-то подобное из фнукции, которая возвращает собственный тип объекта
Добрый день, уважаемые товарищи!
Так как я только начинаю изучать Qt, у меня появляется много, может быть глупых вопросов. И вот очередной из них. У меня есть класс Harness, в котором есть два коструктора, один умолчательный, во второй я передаю параметры создаваемого объекта:
файл Harness.h
namespace ns_harness { class WIRINGDATALIBRARYSHARED_EXPORT Harness { public: explicit Harness(); explicit Harness(const HarnessIdent &h_Ident, const HarnessInfo &h_Info); ....
файл описания Harness.cpp
Harness::Harness() { this->m_harnessInfoObj = harnessInfoObj(); this->m_harnessIdentObj = harnessIdentObj(); } Harness::Harness(const HarnessIdent &h_Ident, const HarnessInfo &h_Info) { this->m_harnessIdentObj = h_Ident; this->m_harnessInfoObj = h_Info; } ....
В другом файле я создаю функцию, которая должна разобрать XML файл и записать его в объект. Внутри функции я делаю проверку, открыт файл или нет и если нет, то хочу вернуть пустое значение. Вот как я это хочу сделать:
Harness getHarnessFromXML(const QString& pathfile, const QString& namefile)const; Harness Wiringdatalibrary::getHarnessFromXML(const QString &pathfile, const QString &namefile) const { /* Объявление объекта file */ QFile file(namefile); QDir currentDir; currentDir.setCurrent(pathfile); if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){ return nullptr; }; }
И получаю вот такую ошибку:
wiringdatalibrary.cpp:124:16: error: no viable conversion from returned value of type 'nullptr_t' to function return type 'ns_harness::Harness' harness.h:22:38: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'nullptr_t' to 'const ns_harness::Harness &' for 1st argument harness.h:22:38: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'nullptr_t' to 'ns_harness::Harness &&' for 1st argument
Что я делаю не так? В C# в этом плане было все гораздо проще.
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
- sdfsdfkp fgskpgokspdog
- 14 жовтня 2024 р. 21:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:90бали,
- Рейтинг балів8
- Максим Васильев
- 02 жовтня 2024 р. 10:14
Qt - Тест 001. Сигналы и слоты
- Результат:68бали,
- Рейтинг балів-1
- Лев Семенов
- 30 вересня 2024 р. 17:04
C++ - Тест 001. Первая программа и типы данных
- Результат:53бали,
- Рейтинг балів-4
Добрый день!
Вам нужно переписать сигнатуру метода, чтобы он возвращал именно указатель на объект.
Это должно выглядеть так
При этом сам объект должен создаваться через операто new