QT 头文件中使用class前置声明
高祥xiang 2018-12-03 14:52:11 776 收藏 2
展开
简述
在A头文件中定义B类对象作为A的成员变量,一般我们采取的方式是在A.h中包含B的头文件;当项目文件较多且相互包含头文件情况较多时,会减慢程序的编译速度。我们还有另一种方式,既能达到这个效果,且能够节省编译时间,就是在A.h中使用calss前置声明方式来解决。
详解
1、在A.h中添加:
class B;
2、在A.h中定义B类对象作为A的成员变量:
B *m_B;
3、在A.cpp包含B.h:
#include "B.h"
"class 类名" 只是声明存在这么一个类,但是通过这个声明无法得到任何关于此类的具体信息,这样你可以在其他使用到的地方声明一个该类型的指针。
include头文件则是将整个该头文件与使用到的地方关联起来。
这种方式可以避免当类A和类B互相调用时候产生死循环,并节约编译时间,因为A的头文件中只是使用了B的指针对象,此时并不需要展开类B。
————————————————
版权声明:本文为CSDN博主「高祥xiang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27278957/article/details/84764683