#include"b.h"
class b;
class a
{
  b m_b;
};
#include"a.h"
class a;
class b
{
  a *m_a;
};
编译提示不认识 b m_b;

解决方案 »

  1.   

    你这是两文件还是一文件啊?如果在同一个文件类class b;
    class a
    {
      b m_b;
    };class b
    {
      a *m_a;
    };
      

  2.   

    #include"b.h"
    class b;
    class a
    {
      b m_b;
    };没有定义完整的class b,不能定义类b的实例,只能定义class b的指针。 如楼上zfive5(醉马不肖)所说。
      

  3.   

    #include a 和#include b存在相互包含的错误
    将#include a去掉就可以了。或者将#include a #include b去掉,将b m_b改成b* m_b也可以

    编程快乐
      

  4.   

    非常典型的头文件嵌套包含,a.h包含b.h,b.h里又要包含a.h,然后a.h中又会包含b.h…………
    这就是头文件嵌套包含。
    可以将#include a去掉
    或改成b * m_b;
      

  5.   

    嵌套包含就是你要是在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也可以