在C++中,为什么循环目录依赖项不好
In C++, why are cyclical directory dependencies bad?
我问的是关于在Linux上开发的C++项目。 考虑一下:
我有两个对等目录,dir1
和 dir2
. dir1
包含classA.h
和classB.h
。 dir2
包含classC.h
和classD.h
。 dir1/classA.h
有一个dir2/classC.h
#include
。 dir2/classD.h
对dir1/classB.h
有一个#include
。 因此,目录dir1
和dir2
之间存在循环依赖关系。但是,任何类之间都没有循环依赖关系。
我理解为什么类之间的循环依赖是不好的。 对我来说,目录也不应该有循环依赖关系,这似乎很直观——但是我不知道为什么这会很糟糕。
有人有解释吗?
它们还不错。至少不是你陈述问题的方式。目录用于组织文件,但以编程方式没有任何意义。
但是,如果您的目录表示单独的模块(即每个目录都有一个生成的库文件(,则会出现链接错误。
因为classA
依赖于classC
,所以你需要构建第二个模块来编译第一个模块。但是第二个模块需要首先构建第一个模块,因为classD
取决于classB
。
就像类一样,目录的循环依赖可能是可维护性和重用的问题。
可维护性:当一个"模块"(在本例中为目录(依赖于另一个模块时,每当其他模块更改时,更改都会影响该模块。
重用:重用模块时,还必须重用它所依赖的模块。
因此,对于循环依赖关系,所有模块都会受到影响。 对于数量有限的模块来说,这不是一个真正的问题,但它会随着数量的增加而增长。
相关文章:
- C++GTKMM gui循环依赖关系
- 如何在头文件中声明类模板(由于循环依赖关系)
- 如何在具有循环依赖的类中dynamic_cast?
- C++模板方法中的循环依赖关系
- 修复循环依赖项 c++17 标头
- 涉及全局对象的循环依赖C++
- 循环依赖,在继承类的情况下使用覆盖方法
- Wt::D bo 中的循环依赖关系
- 在包含窗口标头时难以解决循环依赖关系问题
- 解决循环依赖关系 c++ 的想法
- C++循环依赖关系,未声明的标识符
- C++ 中的循环依赖关系问题
- 错误 C2512 视觉C++(并且不是循环依赖项)
- CMake 外部和内部静态库的循环依赖关系
- 正在从继承中解析循环依赖项
- "std::shared_ptr"循环依赖关系是如何导致问题的
- 循环包含依赖项/转发声明
- 纯引用而不是weak_ptr来打破循环依赖关系
- 如何在Visual Studio(C++11)中处理相互依赖/循环依赖
- 优化依赖循环openmp