在 C++
中解决循环依赖的最佳实践是什么?
我可以使用前向声明,但随后我得到了 pointer to incomplete class type is not allowed
错误。这是否意味着两个使用彼此指针的类不能依赖?
此外,我考虑过转发声明每个类,然后将解决方案的每个 header 包含在 main.cpp
中,这样它们就都在一个地方了。你会推荐它吗?
下面是整个项目的一个片段,如果问题在我熟悉的示例中得到了更好的解释,您可以引用它,但这只是理论上的。 谢谢
最佳答案
你只需要正确使用前向声明:
- 将所有代码放入cpp文件
- 只在头文件中声明类
- 在头文件中:
- 如果您只使用指针或引用,请使用前向声明。
- 否则你要包含头文件。 (不要添加不需要的包含)
- 在cpp文件中
- 包含您需要的所有头文件。
注意:添加包含守卫。
如果没有实际的声明,很难真正做到这一点。该图很好,但没有足够的信息。一张图片可能胜过一千个单词,但是一种精确定义的语言可以非常紧凑地传达更准确的信息(不像英语及其不一致)。
关于c++ - 复杂的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5363542/