c++中两个类相互引用
来源:互联网 发布:地产销售数据报告范文 编辑:程序博客网 时间:2024/06/05 23:03
一、问题描述
现在有两个类A和B需要定义,定义A的时候需要用到B,定义B的时候需要用到A。
二、分析
A和B的定义和调用都放在一个文件中肯定是不可以的,这样就会造成两个循环调用的死循环。
根本原因是:定义A的时候,A的里面有B,所以就需要去查看B的占空间大小,但是查看的时候又发现需要知道A的占空间大小,造成死循环。
解决方法:
(1)写两个头文件A.h和B.h分别用于声明类A和B;
(2)写两个.cpp文件分别用于定义类A和B;
(3)在A的头文件中导入B的头文件;
(4)在B的头文件中不导入A的头文件,但是用extern 的方式声明类A,并且,在B中使用A的时候要用指针的形式。
原理:在B中用指针调用A,那么在A需要知道B占空间大小的时候,就会去找到B的定义文件,虽然B的定义文件中并没有导入A的头文件,不知道A的占空间大小,但是由于在B中调用A的时候用的指针形式,B只知道指针占4个字节就可以,不需要知道A真正占空间大小,也就是说,A也是知道B的占空间大小的。
三、C++示例A的头文件A.h:
B的头文件B.h:
A的定义文件A.cpp:
B的定义文件B.cpp:
main.cpp:
0 0
- c++ 中两个类的相互引用
- c++中两个类相互引用
- (c++)两个类相互包含引用的问题
- QT4(C++)两个头文件相互包含(类超前引用)
- 两个类的相互引用
- 两个类的相互引用
- c++中两个类相互包含引用的相关问题
- c++中两个类相互包含引用的相关问题
- C++中两个类相互包含引用问题
- C++中两个类相互包含引用的相关问题
- c++中两个类相互包含引用的相关问题
- C++中两个类相互包含引用问题
- C++中两个类相互包含引用问题
- C++中两个类相互包含引用问题
- C++中两个类相互包含引用问题
- C++中两个类相互引用的解决办法
- C++中两个类相互包含引用问题
- C++中两个类相互包含引用的问题
- 对宏定义的作用域的一点思考
- Visual Studio安装Open Inventor
- java调用ajax实时监测用户名是否存在
- 使用devtoolset升级GCC版本
- Git命令行
- c++中两个类相互引用
- 1085. Perfect Sequence 解析
- 自定义Dialog,背景,大小,位置。
- React Native 启动白屏问题解决方案,教程
- Android 蓝牙
- LINK : fatal error LNK1104: 无法打开文件“opencv_calib3d231d.lib;”等相关问题
- php 连接mysql
- 生成密码
- RecyclerView局部刷新的应用场景简单分析