没有命名类型

时间:2012-12-26 14:33:18

标签: c++ compiler-errors

  

可能重复:
  Resolve circular dependencies in c++
  What is forward declaration in c++?

我有两个类A和B.我需要在每个类中都有一个字段,它是指向另一个类的对象的指针。我得到“没有命名类型”,因为类的定义尚未出现。例如:

class A{
   B* b;
}
class B{
   A* a;
}

让我“B”没有在第二行命名一个类型。

2 个答案:

答案 0 :(得分:3)

使用前瞻声明:

class B;

class A {
  B* b;
};

class B {
  A* a;
};

通过这种方式,您告诉编译器稍后将声明B并且它不应该担心。有关详情,请参阅此处:Forward declaration

答案 1 :(得分:1)

转发声明是您提问的关键,这里是链接

What is forward declaration in c++?