一个实现两个类互相调用,编译出错why?? #include"b.h"class b;class a{ b m_b;};#include"a.h"class a;class b{ a *m_a;};编译提示不认识 b m_b; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这是两文件还是一文件啊?如果在同一个文件类class b;class a{ b m_b;};class b{ a *m_a;}; #include"b.h"class b;class a{ b m_b;};没有定义完整的class b,不能定义类b的实例,只能定义class b的指针。 如楼上zfive5(醉马不肖)所说。 #include a 和#include b存在相互包含的错误将#include a去掉就可以了。或者将#include a #include b去掉,将b m_b改成b* m_b也可以!编程快乐 非常典型的头文件嵌套包含,a.h包含b.h,b.h里又要包含a.h,然后a.h中又会包含b.h…………这就是头文件嵌套包含。可以将#include a去掉或改成b * m_b; 嵌套包含就是你要是在a.h中包含b.h,b.h中包含a.h,这样两个头文件编译时就会出现a.h中有b.h,因为b.h中有a.h,所以那个a.h中又要包含一个b.h…………如此循环,周而复始。将#include b去掉,将b m_b改成b* m_b也可以 请教tlb文件和lib文件的区别 用CFile时,当重复打开某文件时,出现“共享冲突”,有对应的close 如何将Ctring转换为unsigned char*,在线等 。net 中调用com接口 和 vb中调用 速度为什么差 几十倍?????? 如何透明处理 IP地址转换 请专家:当用户的屏幕显示发生任何变化的时候,我想得到一个事件。 ado添加一条记录,是否必须先打开一个数据集 想不明白,mfc的界面控制怎么那么糟糕? 如何看硬盘的MBR?用DEBUG可以吗? custom control 控件怎么用? 关于XtremeToolKit2.00的一个问题[在线等待]
class a
{
b m_b;
};class b
{
a *m_a;
};
class b;
class a
{
b m_b;
};没有定义完整的class b,不能定义类b的实例,只能定义class b的指针。 如楼上zfive5(醉马不肖)所说。
将#include a去掉就可以了。或者将#include a #include b去掉,将b m_b改成b* m_b也可以
!
编程快乐
这就是头文件嵌套包含。
可以将#include a去掉
或改成b * m_b;
将#include b去掉,将b m_b改成b* m_b也可以