重新定义C++问题,多标头

问题描述 投票:0回答:3

我现在正在从事有很多课程的项目,有时我需要包括:

Player.h 中的 CSConnection.h 和 CSConnection.h 中的 Player.h,现在我的编译器出现冲突,例如类名未定义。

头球有后卫,问题出在哪里?

c++ header-files
3个回答
1
投票

循环依赖只是糟糕的设计。如果您迫切希望让子对象/拥有的对象“了解”其父对象/所有者,则应该向子对象传递 std::function 而不是对所有者的完整引用。


0
投票

前向声明 - 请参阅 http://en.wikipedia.org/wiki/Forward_declaration 或者也许使用警卫'即#ifdef ...' - http://en.wikipedia.org/wiki/Include_guard


-1
投票

包含防护可防止文件在同一文件中多次包含,但无法帮助您进行循环包含。您可能想要的是前向声明,但这取决于包含文件中的内容。

© www.soinside.com 2019 - 2024. All rights reserved.