可能重复:
Resolve circular dependencies in c++
What is forward declaration in c++?
我有两个类A和B.我需要在每个类中都有一个字段,它是指向另一个类的对象的指针。我得到“没有命名类型”,因为类的定义尚未出现。例如:
class A{
B* b;
}
class B{
A* a;
}
让我“B”没有在第二行命名一个类型。
答案 0 :(得分:3)
使用前瞻声明:
class B;
class A {
B* b;
};
class B {
A* a;
};
通过这种方式,您告诉编译器稍后将声明B
并且它不应该担心。有关详情,请参阅此处:Forward declaration
答案 1 :(得分:1)
转发声明是您提问的关键,这里是链接