收藏 分享(赏)

qt文件相互调用.docx

上传人:scg750829 文档编号:7230533 上传时间:2019-05-10 格式:DOCX 页数:4 大小:21.75KB
下载 相关 举报
qt文件相互调用.docx_第1页
第1页 / 共4页
qt文件相互调用.docx_第2页
第2页 / 共4页
qt文件相互调用.docx_第3页
第3页 / 共4页
qt文件相互调用.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、做项目过程中,一般会遇到两个类相互关联的情况,而这两个类又分别放在两个不同文件中,所以就“情不自禁”地相互包含对方的头文件,然后就 “理所应当”地编译错误了。在这里,就讲一下如何让位于不同文件的的两个类相互关联。首先设计类 A(包括头文件 classA.h 和源文件 classA.cpp),其中头文件 classA.h 要#include “classB.h“,而源文件 classA.cpp 又#include“classA.h。这样,在头文件classA.h 和源文件 classA.cpp 都可以使用类 B 的东西了。头文件 classA.h 源码如下:cpp view plaincopyp

2、rint?1. #ifndef _CLASSA_H_ 2. #define _CLASSA_H_ 3. 4. #include “classB.h“ 5. 6. class A 7. public: 8. void display(); 9. void callB(B *b); 10. ; 11. 12. #endif 源文件 classA.cpp 源码如下:cpp view plaincopyprint?1. #include 2. #include “classA.h“ 3. 4. using namespace std; 5. 6. void A:display() 7. coutdis

3、play(); 12. 其次设计类 B(包括头文件 classB.h 和源文件 classB.cpp),这里,头文件 classB.h 是不能#include “classA.h“,因为这样会和头文件 classA.h 形成相互包含,从而编译错误。那怎么样才能让头文件 classB.h 和源文件 classB.cpp 也都可以使用类 A 的东西呢?可以这样:头文件 classB.h 中声明类 A,源文件 classB.cpp 中#include “classA.h“。头文件classB.h 中声明类 A,就是要告诉本模块类 A 是一个在其他地方声明定义的东西,在这里可以使用这个东西的名字,但由

4、于还不知这个东西的具体定义,所以不能再这里实例化这个东西。头文件 classB.h 源码如下:cpp view plaincopyprint?1. #ifndef _CLASSB_H_ 2. #define _CLASSB_H_ 3. 4. class A; 5. class B 6. public: 7. void display(); 8. void callA(A *a); 9. ; 10. 11. #endif 源文件 classB.cpp 源码如下:cpp view plaincopyprint?1. #include 2. #include “classB.h“ 3. #inclu

5、de “classA.h“ 4. 5. using namespace std; 6. 7. void B:display() 8. coutdisplay(); 13. 到这里,我们可以设计一个场景(main 文件),源码如下:cpp view plaincopyprint?1. #ifndef _MAIN_CPP_ 2. #define _MAIN_CPP_ 3. 4. #include 5. #include “classA.h“ 6. #include “classB.h“ 7. 8. using namespace std; 9. 10. int main() 11. int pause; 12. 13. A *ap = new A(); 14. B *bp = new B(); 15. 16. ap-callB(bp); 17. bp-callA(ap); 18. 19. cinpause; 20. return 0; 21. 22. 23. #endif 运行结果如下:可以看出:类 A 调用了 callB(B *b),而 callB 又调用了类 B 的 display()类 B 调用了 callA(A *a),而 callA 又调用了类 A 的 display()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报