'使用未定义的类型'使用循环包含时出错

时间:2014-07-01 13:27:38

标签: c++ compiler-errors circular-dependency forward-declaration

我写了两个带有这些依赖项的类。

//a.h
class B: 
class A{
 B *b ;
 A() { b = new B(this);}
 print();
}



  // b.h
    class A;
    class B{
     A* a;
     B(A *_a){ this->a = _a }
     void foo() { a->print(); } // here i have error : use of undefined type a
   }

如果我评论' a-> print()'代码编译而另一个函数有效,但是当我在B类中使用A类指针时,我得到了这个错误:

  

"使用未定义的类型a"

任何人都可以解决我的问题吗?

由于

1 个答案:

答案 0 :(得分:2)

您需要将方法的实现移到标头和内部实现文件之外。

要执行a->print();new B(this),需要完整的定义。