gpt4 book ai didi

c++ - 包含来自不同的库

转载 作者:太空宇宙 更新时间:2023-11-04 12:05:08 25 4
gpt4 key购买 nike

我必须创建一个可以从不同库创建对象的工厂方法。我的目录树如下所示:

libA/src/...
libB/src/...
libC/src/...
来源/...

libA、libB 等是分开编译的。

让工厂类在libA/src/Factory.h中。它应该从 libB/src/someclass.h 创建一个对象。

如果我在 Factory.h 中包含 ../../libB/src/someclass.h,则 libA 无法编译,因为它无法从 someclass.h 中找到包含(编译器在 libA/src 中查找它们,但那些在 libB/src 中)如果我不包含,它不知道 Someclass,所以我无法创建它的实例。

有什么解决办法吗?

最佳答案

您正在寻找前向声明:在类只需要知道类型的 header 中,用 class AFactory; 声明它,而不是包括整个 Factory.h。

See this tip for more info .

编辑

重新阅读您的问题后,我发现您希望单独编译库与 libA 的工厂必须知道类 libB 之间存在矛盾。那时你不能单独编译,所以我会简单地提供所有必要的目录路径来包含路径。

关于c++ - 包含来自不同的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com