两个两个 C++ 项目可以相互引用吗?

Can two two C++ projects refer each other?

我在 Eclipse 中有两个独立的项目。 项目A需要引用项目B,项目B需要引用项目A。

Is it possible and wise to refer each other ?

已更新:

ProjectB 使用项目 A 的许多 classes(某种库),而项目 A 只需要项目 B 的特定 class(因为项目 A 收到了一个对象项目 B 中的 class,因此项目 A 需要 class 到 type_cast 并做一些事情)

不确定 eclipse 是否可行,我想不可能。但这肯定不是一个好主意。

引用应该单向,避免循环。假设您想在 B 中引用 A 的代码,但发现 B 也需要 A 的代码。您可以尝试将这些部分代码从 A 移动到 B。

如果这没有意义,请使用 A 和 B 都使用的通用代码创建一个新项目 C。

顺便说一下,这与 C++ 并没有真正的关系。它在任何编程语言甚至非编程项目中都有意义。

编辑:阅读您的一条评论后,(“...项目 A 只需要项目 B 的特定 class(因为项目 A 收到了 class 的对象 ... ") 看起来你可以通过某种依赖注入来解决这个问题:

A​​中的class不应依赖于B中定义的class,而是依赖于B中特定class的通用接口(抽象class)是派生的。只有B在使用A的时候,才会传递一个具体class的对象。好了,说的很简单,如果你需要更多的解释,搜索dependency injection就可以了,这绝对是一个重要的概念。

从根本上说,软件单元可以指软件单元。

一个项目是一个或多个软件单元的容器。项目还可能具有诸如包含目录和库(软件单元)之类的属性。

您需要重构项目,以便它们可以共享软件单元。不要担心 "referring" 常见的东西,比如包含路径和程序设置。您可以将这些属性放入环境变量中。

如果需要共享多个函数文件中的单个函数,请将其放在单独的文件中。与 类 类似。