抱歉,我找不到更好的标题:)头文件中有两个struct
。这些struct
的成员类型为另一个struct
。编译器抱怨我在声明B obj
时未声明B。那我该怎么办?
structures.h
struct A
{
B obj; // B is not declared yet
};
struct B
{
A obj;
};
答案 0 :(得分:0)
创建未声明类型的对象是不可能的。你可以拥有的最好的是指向该类型的指针。
使用的一个例子如下:
#include <iostream>
using namespace std;
struct A;
struct B{
A* obj;
B(){cout<<"B ctr"<<endl;}
};
struct A{
B* obj;
A(){cout<<"A ctr"<<endl;}
};
int main()
{
B obj1;
obj1.obj = new A();
A obj2;
obj2.obj = new B();
return 0;
}