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

时间:2012-01-30 10:16:21

标签: c++ directory-structure

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

我有两个对等目录,dir1dir2dir1包含classA.hclassB.hdir2包含classC.hclassD.hdir1/classA.h #include dir2/classC.h dir2/classD.h#include dir1/classB.h dir1 dir2。因此,目录{{1}}和{{1}}之间存在周期性依赖关系。但是,任何类之间都没有周期性的依赖关系。

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

有人有解释吗?

2 个答案:

答案 0 :(得分:5)

他们并不坏。至少不是你说出问题的方式。目录是用来组织文件的,但编程上没有意义。

但是如果您的目录代表单独的模块(即每个目录都有一个生成的库文件),您将遇到链接错误。

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

答案 1 :(得分:0)

与类类似,目录的循环依赖性可能是可维护性重用的问题。

可维护性:当“模块”(在本例中为目录)依赖于另一个模块时,只要其他模块发生更改,更改就会影响该模块。
重用:重用模块时,您还必须重复使用它所依赖的模块。

因此,对于循环依赖,所有模块都会受到影响。这对于数量有限的模块来说并不是一个真正的问题,但它随着数量的增长而增长。