我有一个未解决的问题,我想问一下c ++中的循环依赖。 假设我有两个继承自另一个类的类。在所有这三个类定义中,我有一个成员函数,用于初始化另外两个对象,如下所示。
class A{
public:
...
A* test(){
A* first=new B();
A* second= new C();
}
};
class B:public A{
public:
...
A* test(){
A* first=new A();
A* second= new C();
}
};
class C:public A{
public:
...
A* test(){
A* first=new A();
A* second= new B();
}
};
我得到的编译错误是:"错误C2027:使用未定义的类型' B'"和"错误C2027:使用未定义的类型' C'"。
答案 0 :(得分:1)
在android:layout_height="wrap_content"
之前转发声明,如下所示:
class A
不要使用class B;
class C;
class A{
//...
方法的内联定义,从类中定义它们:
test()
main.cpp方法定义中的某处:
class A{
public:
A* test();
};
class B:public A{
public:
A* test();
};
class C:public A{
public:
A* test(){
A* first=new A();
A* second= new B();
return first; //Add return
}
};
此外,您的方法应返回指针A* A::test()
{
A* first=new B();
A* second= new C();
return first; //Add return
}
A* B::test()
{
A* first=new A();
A* second= new C();
return first; //Add return
}