class A
{
   B b;
}
class B
{
  A a;
}错误: B 没有定义,怎么办?

解决方案 »

  1.   

    刚答了这么一道题:
    http://expert.csdn.net/Expert/topic/2312/2312067.xml?temp=.416546
      

  2.   

    事先声明它:class B;class A
    {
       B b;
    }
    class B
    {
      A a;
    }
      

  3.   

    不行,出错为: b use undefined class "B"
      

  4.   

    class B;
    calss A
    {
      B x;
    };class B
    {
     A y;
    };
    分号不要忘了!
      

  5.   

    楼上说的对
    class B;class A
    {
       B* pa;
    };class B
    {
      A a;
    };
      

  6.   

    在A的头文件中:
    #include"b.h"
    class A
    {
      B m_b;
    }在B的头文件中:
    class A;class B
    {
      A m_a;
    }在B的cpp文件中
    #include "a.h"这样就可以了,虽然比较笨:)
      

  7.   

    在定义class A 的前面,
    先定义一个空类.
    class B;
    然后就OK了.
    因为不定义的话,在A初始化的时候,B还没有被创建呢.
    如下:
    class CB;
    class CA
    {
       CB *m_pb;      //一定要定义成指针,或引用.
    }
    class CB
    {
       CA m_pa;
    }