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

Redefinition C++ Issue, Multiple Header

本文关键字:问题 C++ 新定义 定义      更新时间:2023-10-16

我现在正在处理有很多类的项目,有时我需要包括:

Player.h 中的 CSConnection.h

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

头球有守卫,问题在哪里?

循环依赖只是糟糕的设计。如果你有希望让子对象/拥有的对象"知道"它的父对象/所有者的冲动,你应该向子对象传递一个 std::函数,而不是对所有者的完整引用。

前向声明 - 见 http://en.wikipedia.org/wiki/Forward_declaration或者也许使用警卫"即 #ifdef......"——http://en.wikipedia.org/wiki/Include_guard

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