c++头文件包含冲突

C++ header include conflict

本文关键字:冲突 文件包 c++      更新时间:2023-10-16

我正在为学校做一个交通模拟程序。我的Simulation类从XML文件中读取车辆列表,因此我在Simulation类中包含了Vehicle.h。我希望我的车辆能够持有一个指向模拟对象的指针,以便它可以使用模拟的searchRoads函数。所以我把Simulation.h包含在我的Vehicle类中。

当我这样做时,当我试图编译时,我得到了100多个错误。

我的c++学得很差,所以如果我犯了什么大错误,请告诉我如何改正。

或者,您缺少包含保护,导致多个头文件包含

你正在创建一个循环依赖你的头文件。您应该使用前向声明

贴出你的代码细节以获得更详细的答案

您了解了一些有关include守卫的知识:http://en.wikipedia.org/wiki/Include_guard

由于操作系统有能力处理长文件名,我已经开始命名我的包含文件,以便它们反映代码在命名空间中的位置:

namespace network {
 class connection { bool send( char* stuff ); }
}

最终会出现在"network.connection.h"文件中。

它有助于保持事物的组织,并减少文件名称冲突的机会。