#include
using namespace std;
class B;
class A {
B b;
};
class B {
int a;
};
int main() {
return 0;
}
将以下代码(8到10行)
class B {
int a;
};
移到class A定义的上面(也就是第5行上面)
报错原因是你在使用B的时候并没有B这个类
你可以参考这个
C++类声明
这篇文章解释了
因为你在class A中使用class B前没有定义class B,你只是声明了class B
可以先声明
class B;
这是没问题的
但是类型有问题
B b必须改为B* b
你要在构造函数里初始化这个指针,不能直接静态实例