我现在正在从事有很多课程的项目,有时我需要包括:
Player.h 中的 CSConnection.h 和 CSConnection.h 中的 Player.h,现在我的编译器出现冲突,例如类名未定义。
头球有后卫,问题出在哪里?
循环依赖只是糟糕的设计。如果您迫切希望让子对象/拥有的对象“了解”其父对象/所有者,则应该向子对象传递 std::function 而不是对所有者的完整引用。
前向声明 - 请参阅 http://en.wikipedia.org/wiki/Forward_declaration 或者也许使用警卫'即#ifdef ...' - http://en.wikipedia.org/wiki/Include_guard
包含防护可防止文件在同一文件中多次包含,但无法帮助您进行循环包含。您可能想要的是前向声明,但这取决于包含文件中的内容。