C ++递归数据类型

时间:2010-09-26 04:54:35

标签: c++

一点菜鸟问题: 我需要A和B类,这样A有B *成员,B有A *成员。

编译时我得到“错误:ISO C ++禁止声明'B'没有类型”。我怎么能绕过这个?

3 个答案:

答案 0 :(得分:10)

转发声明B(或A)

class B; //forward declaration of B

class A
{
   B *b;
};

class B
{
   A *a;
};

答案 1 :(得分:6)

转发声明a或b类之一。

class b; //forward declaration

class a{
//class a stuff
b* ptrtoB;

};


class b{
//class b stuff
a* ptrtoA;

};

答案 2 :(得分:2)

如果没有其他类正在使用它,你也可以内联转发声明其中一个类:class B* pMemberB; al la C style