首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QDate类的前向声明会产生错误

QDate类的前向声明会产生错误
EN

Stack Overflow用户
提问于 2017-12-23 01:17:48
回答 1查看 506关注 0票数 0

我正在使用Qt小部件开发一个应用程序。

在我的头文件中,我喜欢转发声明类,而不是包含它们。在头文件的开头,我提出了如下声明:

代码语言:javascript
复制
class QFile;
class QDate;
class QTime;

并且,类中有如下函数声明:

代码语言:javascript
复制
static bool addGoldTransaction(QFile *transactionsFile, Gold goldType, OperationType transactionType, float price, float amount, QDate date, QTime time);

当我试图编译时,它会出现一个错误,如下所示:

代码语言:javascript
复制
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类?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-23 01:50:43

通过引用传递QDateQTime类型的6和7个参数( QDate&QTime& ),或者通过const引用、const QDate&const QTime&传递更高的参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47948981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档