在使用Qt的时候遇到这个错误,查了一下发现,是因为我没有正确的使用前置声明。

 1 #ifndef FIRSTPAGE_H
 2 #define FIRSTPAGE_H
 3
 4 #include "ui_dialog.h"
 5 //#include <QWizardPage>
 6 class QWizardPage;
 7
 8 class FirstPage : public Ui::Dialog, public QWizardPage
 9 {
10 public:
11     FirstPage();
12 };
13
14 #endif // FIRSTPAGE_H

引用了这位的博客 c++ forward declaration 上的说明,如下:

可以声明一个类而不定义它
   class Screen;//declaration of the Screen class
   这个声明,有时候被称为前向声明(forward declaration),在程序中引入了类类型的Screen.在声明之后,定义之前,类Screen是一个不完全类型(incompete type),即已知Screen是一个类型,但不知道包含哪些成员.
   不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数.

也就是说我们使用前置声明是因为不想引入该类的头文件,但是前置声明是有限制的,也就是,只能用来定义前置声明类的指针或者引用。这里我继承了该类,而继承是需要了解类的内部结构的,所以造成了这个错我。

forward declaration of class 错误相关推荐

  1. error: invalid use of incomplete type 'XXXX' ;error: forward declaration of 'XXXX' 声明改为包含头文件

    error: invalid use of incomplete type 'XXXX' error: forward declaration of XXXX 声明改为包含头文件 class XXXX ...

  2. Linux内核编程广泛使用的前向声明(Forward Declaration)

    前向声明 编程定律 先强调一点: 在一切可能的场景,尽可能地使用前向声明(Forward Declaration).这符合信息隐蔽的原则. 一个例子 regmap 那么前向声明究竟是个什么鬼? 在内核 ...

  3. linux 没有windows.h头文件_宋宝华: Linux内核编程广泛使用的前向声明(Forward Declaration)...

    本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者:宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 前向声明 编程定律 先强调一点:在一切可 ...

  4. 正确使用#include和前置声明(forward declaration)

    差不多一年时间没用过C++写过程序了,由于工作的需要,我又回到了C++的阵形.在工作的过程中遇到了很多麻烦,当我往工程里加一个类,而且那个类又与工程里的类相关,如有那个类型的成员变量.情况如下 //A ...

  5. C++基础(1)- 声明(前向声明 Forward Declaration)与定义

    C++基础(1)- 声明(前向声明 Forward Declaration)与定义 如需转载请标明出处:http://blog.csdn.net/itas109 技术交流:129518033 文章目录 ...

  6. Android 编译报XML declaration not well-formed错误的解决方法

    项目上一秒还运行得好好的,下一秒编译却突然不成功,报如下错误 FAILURE: Build failed with an exception.* What went wrong: Execution ...

  7. linux c之加入了加入原文件 math.h调用abs()函数出现implicit declaration of function错误

    今天在vim 写C语言的时候 代码我已经导入了#include<math.h> 但是当我调用ads()函数的时候出现了下面错误 解决办法: 把abs函数改写成fabs函数就行,然后去网上找 ...

  8. Receiver type ‘X’ for instance message is a forward declaration

    引用的问题. ARC要求完整的前向引用,也就是说在MRC时代可能只需要在.h中申明@class就可以, 但是在ARC中如果调用某个子类中未覆盖的父类中的方法的话,必须对父类.h引用,否则无法编译. 在 ...

  9. 关于用turbo c 编译出现的 Declaration syntax error 错误 (未解决)

    对着<深入体验c语言项目开发>中第一章编写俄罗斯方块这个游戏源代码将程序输进VC++,除去因为调用了turbo c 中的graphics.h ,而vc++中没有的这个库报错以外,没有报出其 ...

最新文章

  1. Data - 深入浅出学统计 - 下篇
  2. linux下解压缩文件中文乱码问题的解决
  3. 为什么不建议直接使用 Async 注解?
  4. Windows 2000/NT/XP管理员密码丢失解决方法
  5. ansible 安装和使用
  6. LSTM:《Long Short-Term Memory》的翻译并解读
  7. 加号和减号在一起怎么读_孩子粗心大意怎么治?告诉你背后的原因和好用的方法.........
  8. 奇虎360大战腾讯QQ 高潮迭起用户受伤
  9. 为什么农村出来的大学生大多混得比较差?
  10. abrtd:Executable ‘some execution‘ doesn‘t belong to any package and ProcessUnpackaged is set to ‘no‘
  11. java怎样将日期本土化_Java中的日期操作
  12. Git系列(七):使用Git管理二进制大对象
  13. 查看IIS哪个应用程序池占用CPU过高
  14. 无锡鼋头渚樱花颜色单调
  15. 洛谷 P2678 [NOIP2015提高组] 跳石头(二分答案)
  16. 贪吃蛇程序 php,PHP下利用PHPMailer Web程序【tofacebook.com】 - 贪吃蛇
  17. 算法:数组找出2个只出现一次的数字(其他元素出现两次)
  18. 关于sublime text4 和Google Chrome 的live reload插件
  19. a20 linux qt,全志A83T开发板,超树莓派/A20/A31S/banana pi M3/八核/Android5
  20. Swift游戏实战-跑酷熊猫 10 视差滚动背景

热门文章

  1. 吐血整理:手拿几个大厂offer的秘密武器!
  2. 10 个最值得 Python 新人练手的有趣项目 | 赠书
  3. 这张程序员情绪波动图,未免太真实了! | 每日趣闻
  4. 代码恒久远,GitHub 永流传!
  5. 啧啧,这种程序员……| 每日趣闻
  6. 【转载】Java异常控制机制和异常处理原则
  7. 使用Kotlin打造Android路由框架-KRouter
  8. JAVA爬虫--JS文件数据快速解析
  9. AM335X can驱动移植
  10. Oracle 赋权和回收权限的生效时间