文件1:A.h
#include "B.h"
class B;
class A
{
B b;
};
文件2:B.h
#include "A.h"
class A;
class B
{
A a;
};
问题:编译无法通过。
原因:执行#include "A.h"时,包含了B.h,包含B.h,又包含了A.h,循环嵌套包含。
解决办法:
方法1, 将class A 与class B的声明放在同一个文件中,去掉#include "A.h"与#include "B.h".
方法2,去掉#include "A.h",避免循环嵌套.