【问题标题】:How to link implementation to an interface from another library?如何将实现链接到另一个库的接口?
【发布时间】:2020-10-20 03:48:22
【问题描述】:

我的目标是我有几个库 A、B、C 等。所有的库都将链接到一个核心库。问题在核心库中,有一个类“Calculation_Util”需要库 A、B、C 等的实现。

可以解决我的问题的主题或模块是什么?

详细说明 1

  1. 我想构建一个包含函数的库,该函数依赖于库外部的函数。

【问题讨论】:

  • 我没有清楚地理解问题,但如果这有帮助,请创建单独的源文件并仅包含库 A 或 B 或 C 之一并实现接口。
  • @moonshines 不,我想要的是在库 A 我可以告诉核心库使用库 A 中的 Beta_implementation,而在库 B 时将使用库 B 中的 Beta_implementation。所有这些库都将在同一个项目。
  • 您能否举个例子详细说明一下。哪个接口在哪个类中,哪个类试图访问它们?
  • @moonshines 很简单,我想构建一个包含函数的库,它依赖于库外部的函数。
  • 根据这个接口的生命周期,你不能根据需要使用依赖注入技术来传递实现,或者如果生命周期是静态的,甚至不能使用服务定位器模式?跨度>

标签: c++ interface static-libraries


【解决方案1】:

这在 C++ 中是不可能的。所有链接库必须遵循object-oriented design。这意味着一个库是基础库,其他库是指向它的链接。

因此,如果 A、B、C 有自己的实现,则只能将其中一个链接到 Core。它与 Python 之类的函数式编程不同,您可以将它们全部链接在一起。

【讨论】:

  • 感谢您的解释。我会改变我的设计。
猜你喜欢
  • 2023-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 2023-04-04
  • 2016-04-28
相关资源
最近更新 更多