Как вернуть 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 хостинг.Вам це подобається? Поділіться в соціальних мережах!
- Akiv Doros
- 11 листопада 2024 р. 14:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50бали,
- Рейтинг балів-4
- molni99
- 26 жовтня 2024 р. 01:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80бали,
- Рейтинг балів4
- molni99
- 26 жовтня 2024 р. 01:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20бали,
- Рейтинг балів-10
Добрый день!
Вам нужно переписать сигнатуру метода, чтобы он возвращал именно указатель на объект.
Это должно выглядеть так
При этом сам объект должен создаваться через операто new