C++ C++;链接头文件和类文件

C++ C++;链接头文件和类文件,c++,oop,g++,C++,Oop,G++,我正在制作一些我将要使用的头文件,到目前为止,我有4个头文件,它们被命名为:name.hcustomers.hlibrary.h和book.h。我的问题是:library.h包含一个book对象,该对象位于book.h类中customers.h包含在book.h类中找到的对象。因此,如果不是所有的话,这个类中的大多数都会以某种方式相互作用 当我尝试编译头文件时,出现以下错误: patrons.h:12:20: error: #include nested too deeply patrons.h

我正在制作一些我将要使用的头文件,到目前为止,我有4个头文件,它们被命名为:
name.h
customers.h
library.h
book.h
。我的问题是:
library.h
包含一个
book
对象,该对象位于
book.h
类中
customers.h
包含在
book.h
类中找到的对象。因此,如果不是所有的话,这个类中的大多数都会以某种方式相互作用

当我尝试编译头文件时,出现以下错误:

patrons.h:12:20: error: #include nested too deeply
patrons.h:13:18: error: #include nested too deeply
patrons.h:14:19: error: #include nested too deeply
patrons.h:15:18: error: #include nested too deeply
patrons.h:16:21: error: #include nested too deeply
patrons.h:17:18: error: #include nested too deeply
In file included from name.h:18:0,
                 from library.h:16,

这个循环通过,给了我每个文件相同的错误。我认为这是因为
book.h
有一个
#include“library.h
customers.h
,因此它会导致某种循环。我该如何解决这个问题?我是新到C++的,所以请原谅,如果它是很难理解。 不要在头文件中包含其他头文件,您应该尽可能多地转发声明引用的类和结构,并在翻译单位(.cpp文件)中包含带有完整声明的头文件。@MikołajMularczyk谢谢,这就解决了这个问题。头文件中包含了一些
enum
和其他
define
。我现在得到的错误是,它们未在该范围内声明,即使它链接到的头文件包含定义。是否有办法将此定义公开?