Предварительное объявление класса QDate дает ошибки

Я занимаюсь разработкой приложения с использованием Qt Widgets.

В моих заголовочных файлах я предпочитаю пересылать объявления классов вместо их включения. В начале заголовочного файла я выдвинул следующие объявления:

class QFile;
class QDate;
class QTime;

И есть объявление функции в классе как следующее:

static bool addGoldTransaction(QFile *transactionsFile, Gold goldType, OperationType transactionType, float price, float amount, QDate date, QTime time);

Когда я пытаюсь скомпилировать, выдает ошибку вроде следующего:

forward declaration of 'class QDate'
in definition of macro 'QT_FORWARD_DECLARE_STATIC_TYPES_ITER'
in expansion of macro 'QT_FOR_EACH_STATIC_CORE_CLASS'
In file included from moc_transaction.cpp:9:0:
error: initializing argument 6 of 'static bool addGoldTransaction(QFile*, Gold, OperationType, float, float, QDate, QTime)'

Нет ошибки для прямых объявлений других связанных с Qt классов.

В том числе QDate Заголовочный файл решает проблему, но мне интересно:

  1. Почему компилятор жалуется только на QDate класс пока не жалуется на другие классы? Есть ли что-то особенное с QDate класс, связанный с этой проблемой?
  2. Как я могу переслать объявить QDate учебный класс?

0

Решение

Передайте 6 и 7 аргументов типов QDate а также QTime по ссылкам QDate& а также QTime& или лучше по ссылкам const QDate& а также const QTime&,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]