在C++中,为什么循环目录依赖性不好?

Ken*_*enK 3 c++ directory-structure

我问的是关于在Linux上开发的C++项目.考虑一下:

我有两个对等目录,dir1dir2. dir1包含classA.hclassB.h. dir2包含classC.hclassD.h. dir1/classA.h有一个#includedir2/classC.h.dir2/classD.h有一个#includedir1/classB.h.因此,目录dir1和目录之间存在周期性依赖关系dir2.但是,任何类之间都没有周期性依赖关系.

我理解为什么循环依赖关系在类之间是不好的.对我来说似乎很直观,目录也应该没有周期性依赖 - 但是我无法弄清楚为什么这会很糟糕.

有人有解释吗?

Luc*_*ore 5

他们还不错.至少不是你说出问题的方式.目录旨在组织文件,但编程上没有任何意义.

但是,如果您的目录代表单独的模块(即每个目录都有一个生成的库文件),则会出现链接错误.

因为classA依赖于classC,你需要构建第二个模块以编译第一个模块.但是第二个模块需要首先构建第一个模块,因为它classD取决于classB.