所以我正在创建一个涉及将矢量嵌套在另一个内部的项目,但该结构将无法编译.我认为这是循环依赖的情况,但我看到的所有修复似乎只适用于涉及头文件和单独翻译单元的代码.
#include <iostream>
#include <vector>
class A {
public:
virtual ~A();
};
// The following forward declaration statements didn't solve the
// compiler error:
// class C;
// class C : public A;
class B : public A {
std::vector<A*> Avector;
public:
void addC(C* Cin){Avector.push_back(Cin);}
~B();
};
class C : public A {
std::vector<A*> Avector;
public:
void addB(B* Bin){Avector.push_back(Bin);}
~C();
};
int main() {
B b;
C c;
b.addC(&c);
c.addB(&b);
}
Run Code Online (Sandbox Code Playgroud)
我试着向前宣布
class C;
Class C : public A;
Run Code Online (Sandbox Code Playgroud)
但它似乎都没有用. …