C++ C++;许多类相互引用

C++ C++;许多类相互引用,c++,class,linker,C++,Class,Linker,我有一系列的类需要像这样相互引用 class A { vector<B *> B_list; vector<C *> C_list; ... }; A类 { 向量B_表; 向量C_表; ... }; 每节课。我目前正在为所有.cpp文件使用一个头文件,如下所示: B类;丙级;;A类{…};B类{…};C类{…} 我想知道是否有一种方法可以让每个类都有一个标题 为清晰起见,请编辑:我正在启动一个项目,需要三个非常大、详细且不同的类,每个

我有一系列的类需要像这样相互引用

class A
{
     vector<B *> B_list;
     vector<C *> C_list;
     ... 
};
A类
{
向量B_表;
向量C_表;
... 
};
每节课。我目前正在为所有.cpp文件使用一个头文件,如下所示:

B类;丙级;;A类{…};B类{…};C类{…}

我想知道是否有一种方法可以让每个类都有一个标题

为清晰起见,请编辑:我正在启动一个项目,需要三个非常大、详细且不同的类,每个类都经常相互交互

我为每个类创建了如下
类A{C*C_项;B*B_项;}A包含其他类,每个头都有一个空白的.cpp文件。编译它会导致未定义的类型错误,因为没有其他类就无法定义任何类

因此,我向每个类头添加了前向声明,如
classc;乙级;导致“C”没有命名类型错误,在我的原始代码中,我在处理前向声明时遇到了一些已经定义的类错误

我能让一切正常工作的唯一方法就是使用一个头文件,就像我上面说的那样。然后我尝试使用三个单独的头,所有头都包含一个带有前向声明
class A的头;乙级;;丙级;这并没有解决任何问题


编辑2,发现问题:我正在写
classa{…}A现在我正在写
A类{…}在每个文件的顶部都有转发声明,并且它正在工作,但我不确定为什么会有这种差异。是的,每个类可以有一个头,对于A类头,在顶部键入#include“classB.h”,对于B类头类型键入“include”classC.h“在这种情况下,您应该有3个单独的头文件,您编写的代码应该可以。

当您尝试将类定义放置在不同的头文件中时,您遇到了什么问题?每个类有一个头文件是否合理取决于每个类中的详细信息。您发布的代码中没有任何内容表明每个类不应该有一个标题,因此您需要更详细地描述您所面临的问题。