我有一个问题,我有几个头文件,我需要将它们中的每一个都包含在彼此中。显然,这是无法做到的,因为当我编译时,会抛出“包含嵌套太深”的错误——因为这实质上是要求编译器进入无限包含循环。
我可以使用 void 指针修复它,但这对我来说似乎是不好的编码习惯。
这是我正在尝试做的一个示例,以帮助理解:
文件-A:
#include "File-B"
#include "File-C"
class A
{
public: B* p_B;
public: C* p_C;
};
文件-B:
#include "File-A"
#include "File-C"
class B
{
public: A* p_A;
public: C* p_C;
};
文件-C:
#include "File-B"
class C
{
public: B* p_B;
};
这只是显示需要每个类声明的位置。肯定有更好的解决方案void*
。
编辑:我已经在使用包含警卫,这段代码只是为了帮助你了解我想要做什么。