两个类相互嵌套引用,如何避免循环嵌套引用

时间:2022-12-14 20:23:41

文件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",避免循环嵌套.