gpt4 book ai didi

c++ - 复杂的循环依赖

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:33 24 4
gpt4 key购买 nike

C++ 中解决循环依赖的最佳实践是什么?

我可以使用前向声明,但随后我得到了 pointer to incomplete class type is not allowed 错误。这是否意味着两个使用彼此指针的类不能依赖?

此外,我考虑过转发声明每个类,然后将解决方案的每个 header 包含在 main.cpp 中,这样它们就都在一个地方了。你会推荐它吗?

下面是整个项目的一个片段,如果问题在我熟悉的示例中得到了更好的解释,您可以引用它,但这只是理论上的。谢谢

Models depending on each other

最佳答案

你只需要正确使用前向声明:

  1. 将所有代码放入cpp文件
  2. 只在头文件中声明类
  3. 在头文件中:
    1. 如果您只使用指针或引用,请使用前向声明。
    2. 否则你要包含头文件。 (不要添加不需要的包含)
  4. 在cpp文件中
    1. 包含您需要的所有头文件。

注意:添加包含守卫。

如果没有实际的声明,很难真正做到这一点。该图很好,但没有足够的信息。一张图片可能胜过一千个单词,但是一种精确定义的语言可以非常紧凑地传达更准确的信息(不像英语及其不一致)。

关于c++ - 复杂的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5363542/

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