我正在使用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
头文件解决了这个问题,但我想知道:
QDate
类而不抱怨其他类?与此问题相关的QDate
类是否有任何特殊之处?QDate
类?答案 0 :(得分:0)
通过引用QDate
和QTime
传递类型QDate&
和QTime&
的6和7个参数或更好的const引用const QDate&
和const QTime&