我现在正在从事有很多课程的项目,有时我需要包括:
在Player.h中的CSConnection.h和CSConnection.h中的Player.h,现在我的编译器遇到了类名称没有定义的冲突。
标题有警惕,哪里有问题?
答案 0 :(得分:1)
循环依赖只是糟糕的设计。如果您觉得让子/拥有对象“了解”其父/所有者的冲动,您应该将子传递给std :: function而不是对所有者的完全引用。
答案 1 :(得分:0)
转发声明 - 请参阅http://en.wikipedia.org/wiki/Forward_declaration 或者也许使用警卫'即#ifdef ...' - http://en.wikipedia.org/wiki/Include_guard
答案 2 :(得分:-1)
包含防护措施可防止文件在同一文件中被多次包含,但无法帮助您使用循环包含。您可能想要的是前向声明,但这取决于您的包含文件中的内容。